{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "2YkrqwA5iA1c"
   },
   "source": [
    "# Purpose\n",
    "Creating a network which knows all users\n",
    "with EKMs\n",
    "\n",
    "Assumptions:\n",
    "- x_lead 5bpf in 6seconds in boundary based EKMs are the EKMs from IMDs ECG signals.\n",
    "- So we use y lead as the programmer's signal"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "0ZGs2cPRiPSV"
   },
   "source": [
    "# Imports and installations"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "executionInfo": {
     "elapsed": 502,
     "status": "ok",
     "timestamp": 1729804000976,
     "user": {
      "displayName": "Amirhossein Safari",
      "userId": "15860835955585744916"
     },
     "user_tz": -210
    },
    "id": "e9ixLrCj1liz"
   },
   "outputs": [],
   "source": [
    "import os\n",
    "from datetime import datetime\n",
    "import random\n",
    "import zipfile"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "executionInfo": {
     "elapsed": 10,
     "status": "ok",
     "timestamp": 1729804002268,
     "user": {
      "displayName": "Amirhossein Safari",
      "userId": "15860835955585744916"
     },
     "user_tz": -210
    },
    "id": "P5MoLcaw53P2"
   },
   "outputs": [],
   "source": [
    "from PIL import Image\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Unzipping the 5bpf, 5 seconds dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Define the dataset path and output directories\n",
    "dataset_path = \"../6 seconds_5 bpf EKM dataset_with 6000 EKMs length signal/EKMs_6secondsBoundary_5bpf.zip\"\n",
    "unzip_dir = \"../users_zip_files_6sec_5bpf\"\n",
    "users_ekm_dir = \"../users_EKM_files_6sec_5bpf\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Unzip the main dataset file\n",
    "with zipfile.ZipFile(dataset_path, 'r') as zip_ref:\n",
    "    zip_ref.extractall(unzip_dir)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Create directory for user EKM files if it doesn't exist\n",
    "os.makedirs(users_ekm_dir, exist_ok=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Unzip individual user EKM zip files\n",
    "user_zip_path = os.path.join(unzip_dir, \"Users EKM zip\")\n",
    "for _file in os.listdir(user_zip_path):\n",
    "    file_name, _ = os.path.splitext(_file)\n",
    "    file_dir = os.path.join(users_ekm_dir, file_name)\n",
    "    \n",
    "    os.makedirs(file_dir, exist_ok=True)\n",
    "    \n",
    "    with zipfile.ZipFile(os.path.join(user_zip_path, _file), 'r') as zip_ref:\n",
    "        zip_ref.extractall(file_dir)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "# dataset_path = \"../6\\ seconds_5\\ bpf\\ EKM\\ dataset_with\\ 6000\\ EKMs\\ length\\ signal/EKMs_6secondsBoundary_5bpf.zip\"\n",
    "\n",
    "# ! unzip $dataset_path -d ../users_zip_files_6sec_5bpf\n",
    "\n",
    "# # Unzipping the EKMs of users\n",
    "# ! mkdir ../users_EKM_files_6sec_5bpf\n",
    "\n",
    "# for _file in os.listdir(\"../users_zip_files_6sec_5bpf/Users EKM zip/\"):\n",
    "#   file_name = _file.split(\".\")[0]\n",
    "#   ! unzip ../users_zip_files_6sec_5bpf/Users\\ EKM\\ zip/$_file -d ../users_EKM_files_5sec_5bpf/$file_name"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "z8deqN6wwNU8"
   },
   "source": [
    "# Healthy EKMs check\n",
    "- Moving window checking"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "executionInfo": {
     "elapsed": 84,
     "status": "ok",
     "timestamp": 1729804072885,
     "user": {
      "displayName": "Amirhossein Safari",
      "userId": "15860835955585744916"
     },
     "user_tz": -210
    },
    "id": "ki62FBJ0wPyT"
   },
   "outputs": [],
   "source": [
    "path = \"../users_EKM_files_6sec_5bpf/2005/x_lead\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "executionInfo": {
     "elapsed": 83,
     "status": "ok",
     "timestamp": 1729804072885,
     "user": {
      "displayName": "Amirhossein Safari",
      "userId": "15860835955585744916"
     },
     "user_tz": -210
    },
    "id": "fqDJXx1txUlm"
   },
   "outputs": [],
   "source": [
    "EKMs = os.listdir(path)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "executionInfo": {
     "elapsed": 82,
     "status": "ok",
     "timestamp": 1729804072885,
     "user": {
      "displayName": "Amirhossein Safari",
      "userId": "15860835955585744916"
     },
     "user_tz": -210
    },
    "id": "pXrHSdKPw_xG"
   },
   "outputs": [],
   "source": [
    "def are_images_identical(image1_path, image2_path):\n",
    "    img1 = Image.open(image1_path)\n",
    "    img2 = Image.open(image2_path)\n",
    "\n",
    "    return np.array_equal(np.array(img1), np.array(img2))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "executionInfo": {
     "elapsed": 82,
     "status": "ok",
     "timestamp": 1729804072885,
     "user": {
      "displayName": "Amirhossein Safari",
      "userId": "15860835955585744916"
     },
     "user_tz": -210
    },
    "id": "O0Ya8-OZxJhC",
    "outputId": "2eb981f0-ac0e-4aa0-f322-afee33a6d17c"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Images are different.\n"
     ]
    }
   ],
   "source": [
    "path_EKM1 = path + \"/\" + EKMs[0]\n",
    "path_EKM2 = path + \"/\" + EKMs[1]\n",
    "\n",
    "result = are_images_identical(path_EKM1, path_EKM2)\n",
    "print(\"Images are identical:\" if result else \"Images are different.\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "0rhYAbX8tldM"
   },
   "source": [
    "# Creating dictionary of list of each user's EKMs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "executionInfo": {
     "elapsed": 32,
     "status": "ok",
     "timestamp": 1729804072887,
     "user": {
      "displayName": "Amirhossein Safari",
      "userId": "15860835955585744916"
     },
     "user_tz": -210
    },
    "id": "WsJx4STKMEJQ"
   },
   "outputs": [],
   "source": [
    "# Getting users id\n",
    "users_id = []\n",
    "path = \"../users_EKM_files_6sec_5bpf\"\n",
    "dirs = os.listdir(path)\n",
    "for dir in dirs:\n",
    "  user_id = dir.split(\"_\")[-1]\n",
    "  users_id.append(user_id)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "executionInfo": {
     "elapsed": 32,
     "status": "ok",
     "timestamp": 1729804072887,
     "user": {
      "displayName": "Amirhossein Safari",
      "userId": "15860835955585744916"
     },
     "user_tz": -210
    },
    "id": "Lm_RGBHJtD1e",
    "outputId": "f265a113-ace6-41a5-8235-600afca69b50"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "199"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(users_id)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "executionInfo": {
     "elapsed": 30,
     "status": "ok",
     "timestamp": 1729804072887,
     "user": {
      "displayName": "Amirhossein Safari",
      "userId": "15860835955585744916"
     },
     "user_tz": -210
    },
    "id": "whs9cDh9ulg3",
    "outputId": "5e1812b6-cad2-42bb-a5f7-33730b90b39a"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "5bpf-ekm-bpf_recording_signal_length_ekm_dataset-2005-0.png\n",
      "5bpf-ekm-bpf_recording_signal_length_ekm_dataset-2005-1000.png\n",
      "5bpf-ekm-bpf_recording_signal_length_ekm_dataset-2005-1001.png\n",
      "5bpf-ekm-bpf_recording_signal_length_ekm_dataset-2005-1002.png\n",
      "5bpf-ekm-bpf_recording_signal_length_ekm_dataset-2005-1003.png\n",
      "5bpf-ekm-bpf_recording_signal_length_ekm_dataset-2005-1004.png\n",
      "5bpf-ekm-bpf_recording_signal_length_ekm_dataset-2005-1005.png\n",
      "5bpf-ekm-bpf_recording_signal_length_ekm_dataset-2005-1006.png\n",
      "5bpf-ekm-bpf_recording_signal_length_ekm_dataset-2005-1007.png\n",
      "5bpf-ekm-bpf_recording_signal_length_ekm_dataset-2005-1008.png\n",
      "ls: write error: Broken pipe\n"
     ]
    }
   ],
   "source": [
    "! ls ../users_EKM_files_6sec_5bpf/2005/x_lead | head"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "executionInfo": {
     "elapsed": 29,
     "status": "ok",
     "timestamp": 1729804072887,
     "user": {
      "displayName": "Amirhossein Safari",
      "userId": "15860835955585744916"
     },
     "user_tz": -210
    },
    "id": "bKWKXtI1uAMZ"
   },
   "outputs": [],
   "source": [
    "# Creating dict of counters for each randomly-chosen users\n",
    "# of ecg 200 dataset\n",
    "# Also creating dict of users' EKMs\n",
    "ecg_200_users_EKM_amount_dict = {}\n",
    "ecg_200_users_EKMs_dict = {}\n",
    "\n",
    "for user in users_id:\n",
    "  ecg_200_users_EKM_amount_dict[user] = 0\n",
    "  ecg_200_users_EKMs_dict[user] = []"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "executionInfo": {
     "elapsed": 28,
     "status": "ok",
     "timestamp": 1729804072887,
     "user": {
      "displayName": "Amirhossein Safari",
      "userId": "15860835955585744916"
     },
     "user_tz": -210
    },
    "id": "nTzQRRk9thF8"
   },
   "outputs": [],
   "source": [
    "# Counting each user's EKMs in dataset and collecting EKMs of him/her\n",
    "dataset_path = \"../users_EKM_files_6sec_5bpf\"\n",
    "users_files = os.listdir(dataset_path)\n",
    "\n",
    "for _files in users_files:\n",
    "    user_id = _files.split(\"_\")[-1]\n",
    "    if user_id in users_id:\n",
    "      ecg_200_users_EKM_amount_dict[user_id] = len(os.listdir(f\"{dataset_path}/{user_id}/y_lead\"))\n",
    "      ecg_200_users_EKMs_dict[user_id] = os.listdir(f\"{dataset_path}/{user_id}/y_lead\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "executionInfo": {
     "elapsed": 28,
     "status": "ok",
     "timestamp": 1729804072887,
     "user": {
      "displayName": "Amirhossein Safari",
      "userId": "15860835955585744916"
     },
     "user_tz": -210
    },
    "id": "Esr_0E0Luy3k",
    "outputId": "627beab9-a047-4e6e-e283-a20fed3dca41"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'4085': 3000,\n",
       " '6016': 3000,\n",
       " '1047': 3000,\n",
       " '1045': 3000,\n",
       " '2008': 3000,\n",
       " '6021': 3000,\n",
       " '4218': 3000,\n",
       " '9034': 3000,\n",
       " '4214': 3000,\n",
       " '2010': 3000,\n",
       " '6098': 3000,\n",
       " '2019': 3000,\n",
       " '6114': 3000,\n",
       " '2014': 3000,\n",
       " '6056': 3000,\n",
       " '6003': 3000,\n",
       " '4019': 3000,\n",
       " '4227': 3000,\n",
       " '9101': 3000,\n",
       " '10047': 3000,\n",
       " '9064': 3000,\n",
       " '1048': 3000,\n",
       " '1046': 3000,\n",
       " '6123': 3000,\n",
       " '9021': 3000,\n",
       " '6095': 3000,\n",
       " '10098': 3000,\n",
       " '2025': 3000,\n",
       " '10105': 3000,\n",
       " '9007': 3000,\n",
       " '6126': 3000,\n",
       " '6118': 3000,\n",
       " '2006': 3000,\n",
       " '4008': 3000,\n",
       " '6024': 3000,\n",
       " '2016': 3000,\n",
       " '1024': 3000,\n",
       " '10096': 3000,\n",
       " '4050': 3000,\n",
       " '4006': 3000,\n",
       " '1056': 3000,\n",
       " '6025': 3000,\n",
       " '10083': 3000,\n",
       " '9025': 3000,\n",
       " '2005': 3000,\n",
       " '4043': 3000,\n",
       " '9105': 3000,\n",
       " '10064': 3000,\n",
       " '6036': 3000,\n",
       " '6017': 3000,\n",
       " '6027': 3000,\n",
       " '6013': 3000,\n",
       " '6120': 3000,\n",
       " '6020': 3000,\n",
       " '8033': 3000,\n",
       " '6029': 3000,\n",
       " '6124': 3000,\n",
       " '1041': 3000,\n",
       " '1016': 3000,\n",
       " '4125': 3000,\n",
       " '6030': 3000,\n",
       " '10066': 3000,\n",
       " '10022': 3000,\n",
       " '6035': 3000,\n",
       " '6006': 3000,\n",
       " '6099': 3000,\n",
       " '6119': 3000,\n",
       " '9080': 3000,\n",
       " '6005': 3000,\n",
       " '2023': 3000,\n",
       " '6117': 3000,\n",
       " '4093': 3000,\n",
       " '4035': 3000,\n",
       " '4219': 3000,\n",
       " '9027': 3000,\n",
       " '9102': 3000,\n",
       " '10087': 3000,\n",
       " '10103': 3000,\n",
       " '10077': 3000,\n",
       " '6014': 3000,\n",
       " '9082': 3000,\n",
       " '6012': 3000,\n",
       " '4229': 3000,\n",
       " '1027': 3000,\n",
       " '6132': 3000,\n",
       " '9006': 3000,\n",
       " '9003': 3000,\n",
       " '4001': 3000,\n",
       " '2011': 3000,\n",
       " '4023': 3000,\n",
       " '4076': 3000,\n",
       " '4038': 3000,\n",
       " '2021': 3000,\n",
       " '6032': 3000,\n",
       " '4058': 3000,\n",
       " '9008': 3000,\n",
       " '9074': 3000,\n",
       " '6010': 3000,\n",
       " '6125': 3000,\n",
       " '6023': 3000,\n",
       " '9104': 3000,\n",
       " '9022': 3000,\n",
       " '10094': 3000,\n",
       " '1030': 3000,\n",
       " '10050': 3000,\n",
       " '1017': 3000,\n",
       " '1018': 3000,\n",
       " '8008': 3000,\n",
       " '10091': 3000,\n",
       " '4003': 3000,\n",
       " '6112': 3000,\n",
       " '8021': 3000,\n",
       " '2020': 3000,\n",
       " '6102': 3000,\n",
       " '1049': 3000,\n",
       " '2002': 3000,\n",
       " '10084': 3000,\n",
       " '2013': 3000,\n",
       " '2012': 3000,\n",
       " '9020': 3000,\n",
       " '9057': 3000,\n",
       " '10062': 3000,\n",
       " '6128': 3000,\n",
       " '10079': 3000,\n",
       " '6047': 3000,\n",
       " '9071': 3000,\n",
       " '6131': 3000,\n",
       " '4086': 3000,\n",
       " '10069': 3000,\n",
       " '6113': 3000,\n",
       " '4073': 3000,\n",
       " '2026': 3000,\n",
       " '1044': 3000,\n",
       " '2009': 3000,\n",
       " '4181': 3000,\n",
       " '10049': 3000,\n",
       " '6028': 3000,\n",
       " '9098': 3000,\n",
       " '10085': 3000,\n",
       " '2015': 3000,\n",
       " '2001': 3000,\n",
       " '6033': 3000,\n",
       " '6002': 3000,\n",
       " '6054': 3000,\n",
       " '2017': 3000,\n",
       " '4226': 3000,\n",
       " '9005': 3000,\n",
       " '6046': 3000,\n",
       " '2044': 3000,\n",
       " '4221': 3000,\n",
       " '6129': 3000,\n",
       " '6011': 3000,\n",
       " '9002': 3000,\n",
       " '4034': 3000,\n",
       " '6093': 3000,\n",
       " '6130': 3000,\n",
       " '6007': 3000,\n",
       " '4162': 3000,\n",
       " '6015': 3000,\n",
       " '10102': 3000,\n",
       " '10023': 3000,\n",
       " '10101': 3000,\n",
       " '4045': 3000,\n",
       " '2007': 3000,\n",
       " '9004': 3000,\n",
       " '9061': 3000,\n",
       " '1029': 3000,\n",
       " '1043': 3000,\n",
       " '2004': 3000,\n",
       " '10106': 3000,\n",
       " '1042': 3000,\n",
       " '6127': 3000,\n",
       " '6026': 3000,\n",
       " '6031': 3000,\n",
       " '4002': 3000,\n",
       " '9063': 3000,\n",
       " '2003': 3000,\n",
       " '6122': 3000,\n",
       " '6085': 3000,\n",
       " '6088': 3000,\n",
       " '9046': 3000,\n",
       " '10051': 3000,\n",
       " '10090': 3000,\n",
       " '6019': 3000,\n",
       " '9079': 3000,\n",
       " '10086': 3000,\n",
       " '10095': 3000,\n",
       " '10082': 3000,\n",
       " '6057': 3000,\n",
       " '4057': 3000,\n",
       " '9062': 3000,\n",
       " '6066': 3000,\n",
       " '2022': 3000,\n",
       " '9075': 3000,\n",
       " '2079': 3000,\n",
       " '9103': 3000,\n",
       " '4042': 3000,\n",
       " '9094': 3000,\n",
       " '10048': 3000}"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ecg_200_users_EKM_amount_dict"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "executionInfo": {
     "elapsed": 27,
     "status": "ok",
     "timestamp": 1729804072887,
     "user": {
      "displayName": "Amirhossein Safari",
      "userId": "15860835955585744916"
     },
     "user_tz": -210
    },
    "id": "M2WwJ38evpJg",
    "outputId": "f9bf7118-4604-43b5-d33c-d1970b75cb62"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3000"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "min(ecg_200_users_EKM_amount_dict.values())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "JwYpvhB9iej_"
   },
   "source": [
    "# Selecting EKMs of different users\n",
    "Note: Selecting **1000** EKMs per user"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "executionInfo": {
     "elapsed": 25,
     "status": "ok",
     "timestamp": 1729804072887,
     "user": {
      "displayName": "Amirhossein Safari",
      "userId": "15860835955585744916"
     },
     "user_tz": -210
    },
    "id": "EcWY08RoImQj"
   },
   "outputs": [],
   "source": [
    "# Selecting N amount of EKMs for each user\n",
    "users_bpf_EKMs_x = []\n",
    "users_bpf_EKMs_y = []\n",
    "\n",
    "N_each_user_ekms_amount = 1000\n",
    "dataset_path = \"../users_EKM_files_6sec_5bpf\"\n",
    "\n",
    "for _files in users_files:\n",
    "    user_id = _files.split(\"_\")[-1]\n",
    "    if user_id in users_id:\n",
    "      for _ekm_number in range(N_each_user_ekms_amount):\n",
    "        # 5bpf-ekm-bpf_recording_signal_length_ekm_dataset-2005-1008.png\n",
    "        users_bpf_EKMs_x.append(f\"{dataset_path}/{user_id}/y_lead/5bpf-ekm-bpf_recording_signal_length_ekm_dataset-{user_id}-{_ekm_number}.png\")\n",
    "        users_bpf_EKMs_y.append(user_id)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "executionInfo": {
     "elapsed": 25,
     "status": "ok",
     "timestamp": 1729804072887,
     "user": {
      "displayName": "Amirhossein Safari",
      "userId": "15860835955585744916"
     },
     "user_tz": -210
    },
    "id": "ESqFOj-LV9qV",
    "outputId": "403c0f5e-3228-454f-989a-c7d45ffc477f"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['../users_EKM_files_6sec_5bpf/4085/y_lead/5bpf-ekm-bpf_recording_signal_length_ekm_dataset-4085-0.png',\n",
       " '../users_EKM_files_6sec_5bpf/4085/y_lead/5bpf-ekm-bpf_recording_signal_length_ekm_dataset-4085-1.png',\n",
       " '../users_EKM_files_6sec_5bpf/4085/y_lead/5bpf-ekm-bpf_recording_signal_length_ekm_dataset-4085-2.png',\n",
       " '../users_EKM_files_6sec_5bpf/4085/y_lead/5bpf-ekm-bpf_recording_signal_length_ekm_dataset-4085-3.png',\n",
       " '../users_EKM_files_6sec_5bpf/4085/y_lead/5bpf-ekm-bpf_recording_signal_length_ekm_dataset-4085-4.png',\n",
       " '../users_EKM_files_6sec_5bpf/4085/y_lead/5bpf-ekm-bpf_recording_signal_length_ekm_dataset-4085-5.png',\n",
       " '../users_EKM_files_6sec_5bpf/4085/y_lead/5bpf-ekm-bpf_recording_signal_length_ekm_dataset-4085-6.png',\n",
       " '../users_EKM_files_6sec_5bpf/4085/y_lead/5bpf-ekm-bpf_recording_signal_length_ekm_dataset-4085-7.png',\n",
       " '../users_EKM_files_6sec_5bpf/4085/y_lead/5bpf-ekm-bpf_recording_signal_length_ekm_dataset-4085-8.png',\n",
       " '../users_EKM_files_6sec_5bpf/4085/y_lead/5bpf-ekm-bpf_recording_signal_length_ekm_dataset-4085-9.png']"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "users_bpf_EKMs_x[:10]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "XbJishzBIEMm"
   },
   "source": [
    "# Vectorization of EKMs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "executionInfo": {
     "elapsed": 24,
     "status": "ok",
     "timestamp": 1729804072888,
     "user": {
      "displayName": "Amirhossein Safari",
      "userId": "15860835955585744916"
     },
     "user_tz": -210
    },
    "id": "RA7Ymy5DIDu4"
   },
   "outputs": [],
   "source": [
    "def vertorizing_png_imges(address):\n",
    "  # Load the PNG image\n",
    "  image = Image.open(address)\n",
    "\n",
    "  # Convert the image to RGB mode\n",
    "  image = image.convert('RGB')\n",
    "\n",
    "  # Resize the image to match the input size expected by the CNN\n",
    "  desired_width = 31\n",
    "  desired_height = 20\n",
    "  image = image.resize((desired_width, desired_height))\n",
    "\n",
    "  # Convert the image to a NumPy array\n",
    "  image_array = np.array(image)\n",
    "\n",
    "  # Reshape the array to match the input shape expected by the CNN\n",
    "  # image_array = image_array.reshape((1, desired_height, desired_width, 3))\n",
    "\n",
    "  # Normalize the array\n",
    "  image_array = image_array.astype('float32') / 255.0\n",
    "\n",
    "  return image_array"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "executionInfo": {
     "elapsed": 24,
     "status": "ok",
     "timestamp": 1729804072888,
     "user": {
      "displayName": "Amirhossein Safari",
      "userId": "15860835955585744916"
     },
     "user_tz": -210
    },
    "id": "FMaLRfivRF0O"
   },
   "outputs": [],
   "source": [
    "from IPython.display import clear_output\n",
    "\n",
    "def progress_bar(index, total_length, name_of_list):\n",
    "    bar_length = 50\n",
    "\n",
    "    # Calculate the percentage of completion\n",
    "    percent_complete = (index / total_length) * 100\n",
    "\n",
    "    # Clear the current cell's output\n",
    "    clear_output(wait=True)\n",
    "\n",
    "    print(name_of_list)\n",
    "\n",
    "    # Print the progress bar\n",
    "    print(\"[\", end=\"\")\n",
    "    completed_blocks = int(bar_length * (percent_complete / 100))\n",
    "    print(\"*\" * completed_blocks, end=\"\")\n",
    "    print(\"-\" * (bar_length - completed_blocks), end=\"]\\n\")\n",
    "\n",
    "    # Print the progress in the format: index/total_length\n",
    "    print(f\"{index}/{total_length}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "executionInfo": {
     "elapsed": 251098,
     "status": "ok",
     "timestamp": 1729804323962,
     "user": {
      "displayName": "Amirhossein Safari",
      "userId": "15860835955585744916"
     },
     "user_tz": -210
    },
    "id": "312GBxR7P9p1",
    "outputId": "8b2bd402-17ac-409f-989f-edab3f711c6a"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Vertorizing\n",
      "[*************************************************-]\n",
      "198999/199000\n"
     ]
    }
   ],
   "source": [
    "# Vectorizing EKMs of users\n",
    "for index, ekm_path in enumerate(users_bpf_EKMs_x):\n",
    "  progress_bar(index, len(users_bpf_EKMs_x), \"Vertorizing\")\n",
    "  users_bpf_EKMs_x[index] = vertorizing_png_imges(ekm_path)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "Yo6Qz0zU5yco"
   },
   "source": [
    "# Model and prepration of data for fitting them to model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "executionInfo": {
     "elapsed": 64,
     "status": "ok",
     "timestamp": 1729804323963,
     "user": {
      "displayName": "Amirhossein Safari",
      "userId": "15860835955585744916"
     },
     "user_tz": -210
    },
    "id": "PCEYIc2X5xhp"
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2024-12-08 12:09:23.168610: I tensorflow/tsl/cuda/cudart_stub.cc:28] Could not find cuda drivers on your machine, GPU will not be used.\n",
      "2024-12-08 12:09:23.214451: I tensorflow/tsl/cuda/cudart_stub.cc:28] Could not find cuda drivers on your machine, GPU will not be used.\n",
      "2024-12-08 12:09:23.215502: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n",
      "To enable the following instructions: AVX2 FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n",
      "2024-12-08 12:09:24.053513: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT\n"
     ]
    }
   ],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "from tensorflow.keras.models import Sequential \n",
    "from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Dropout, LSTM, Reshape\n",
    "from tensorflow.keras.optimizers import Adam"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "FVlXdp9CRq-o"
   },
   "source": [
    "## Labels of data (EKMs)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "executionInfo": {
     "elapsed": 63,
     "status": "ok",
     "timestamp": 1729804323963,
     "user": {
      "displayName": "Amirhossein Safari",
      "userId": "15860835955585744916"
     },
     "user_tz": -210
    },
    "id": "1fgi-9DY6A25"
   },
   "outputs": [],
   "source": [
    "def numerical_labels(labels_arr, dict_of_labels={}):\n",
    "  # This function change the labels of train and test\n",
    "  # data to numerical ones.\n",
    "  # Note: for the test data we should pass the train\n",
    "  # data labels\n",
    "\n",
    "  if dict_of_labels == {}:\n",
    "    unique_labels = np.unique(labels_arr)\n",
    "\n",
    "    for i, value in enumerate(unique_labels):\n",
    "        dict_of_labels[value] = i\n",
    "\n",
    "  # print(dict_of_labels)\n",
    "\n",
    "  num_lbls = []\n",
    "  for lbl in labels_arr:\n",
    "    num_lbls.append(dict_of_labels[lbl])\n",
    "\n",
    "  num_lbls = np.array(num_lbls)\n",
    "\n",
    "  return dict_of_labels, num_lbls"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "executionInfo": {
     "elapsed": 63,
     "status": "ok",
     "timestamp": 1729804323963,
     "user": {
      "displayName": "Amirhossein Safari",
      "userId": "15860835955585744916"
     },
     "user_tz": -210
    },
    "id": "bD_1bhOsO2nw"
   },
   "outputs": [],
   "source": [
    "label_dict, numerical_y_labels = numerical_labels(users_bpf_EKMs_y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [],
   "source": [
    "users_bpf_EKMs_x = np.array(users_bpf_EKMs_x)\n",
    "numerical_y_labels = np.array(numerical_y_labels)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "bFyA5qcxR8B3"
   },
   "source": [
    "## Splitting train/test data (EKMs)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "executionInfo": {
     "elapsed": 63,
     "status": "ok",
     "timestamp": 1729804323963,
     "user": {
      "displayName": "Amirhossein Safari",
      "userId": "15860835955585744916"
     },
     "user_tz": -210
    },
    "id": "CitVofpkR7b4"
   },
   "outputs": [],
   "source": [
    "# Splitting train and test data by proportion of 80/20\n",
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "# Split the data into training and validation sets\n",
    "X_train, X_test, y_train, y_test = train_test_split(users_bpf_EKMs_x, numerical_y_labels, test_size=0.2, random_state=42, stratify=numerical_y_labels)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "wtWNlilZS7tx"
   },
   "source": [
    "## Model architeture"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "J7UlAKOh7dUO"
   },
   "source": [
    "## Improved model: No.1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2024-12-08 12:09:35.218138: I tensorflow/compiler/xla/stream_executor/cuda/cuda_gpu_executor.cc:995] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n",
      "2024-12-08 12:09:35.219238: W tensorflow/core/common_runtime/gpu/gpu_device.cc:1960] Cannot dlopen some GPU libraries. Please make sure the missing libraries mentioned above are installed properly if you would like to use GPU. Follow the guide at https://www.tensorflow.org/install/gpu for how to download and setup the required libraries for your platform.\n",
      "Skipping registering GPU devices...\n"
     ]
    }
   ],
   "source": [
    "# Creating the CNN model\n",
    "model = Sequential([\n",
    "      Conv2D(32, (3, 3), activation='relu', padding='same', input_shape=(20, 31, 3)),\n",
    "      MaxPooling2D(pool_size=(2, 2)),\n",
    "      Conv2D(64, (3, 3), activation='relu', padding='same'),\n",
    "\n",
    "      Dropout(0.7),\n",
    "\n",
    "      Flatten(),\n",
    "      Dense(512, activation='relu'),\n",
    "      Dense(256, activation='relu'),\n",
    "      Dense(199, activation='softmax')\n",
    "])\n",
    "\n",
    "# Setting Adam optimizer\n",
    "optimizer = Adam(learning_rate=0.001)\n",
    "\n",
    "# Compileing the model with the optimizer\n",
    "model.compile(optimizer=optimizer, loss='sparse_categorical_crossentropy', metrics=['accuracy'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 1000
    },
    "executionInfo": {
     "elapsed": 1077934,
     "status": "error",
     "timestamp": 1729805401835,
     "user": {
      "displayName": "Amirhossein Safari",
      "userId": "15860835955585744916"
     },
     "user_tz": -210
    },
    "id": "1I7xcJI46MUS",
    "outputId": "aa465e3f-0b54-48b9-f1f0-76ad6ecb87dc"
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2024-11-24 20:21:01.843916: I tensorflow/compiler/xla/stream_executor/cuda/cuda_gpu_executor.cc:995] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero. See more at https://github.com/torvalds/linux/blob/v6.0/Documentation/ABI/testing/sysfs-bus-pci#L344-L355\n",
      "2024-11-24 20:21:01.844856: W tensorflow/core/common_runtime/gpu/gpu_device.cc:1960] Cannot dlopen some GPU libraries. Please make sure the missing libraries mentioned above are installed properly if you would like to use GPU. Follow the guide at https://www.tensorflow.org/install/gpu for how to download and setup the required libraries for your platform.\n",
      "Skipping registering GPU devices...\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/100\n",
      "1244/1244 [==============================] - 41s 32ms/step - loss: 1.3617 - accuracy: 0.6344\n",
      "Epoch 2/100\n",
      "1244/1244 [==============================] - 40s 32ms/step - loss: 0.4628 - accuracy: 0.8575\n",
      "Epoch 3/100\n",
      "1244/1244 [==============================] - 40s 32ms/step - loss: 0.3440 - accuracy: 0.8913\n",
      "Epoch 4/100\n",
      "1244/1244 [==============================] - 40s 32ms/step - loss: 0.2842 - accuracy: 0.9095\n",
      "Epoch 5/100\n",
      "1244/1244 [==============================] - 40s 32ms/step - loss: 0.2465 - accuracy: 0.9205\n",
      "Epoch 6/100\n",
      "1244/1244 [==============================] - 40s 32ms/step - loss: 0.2205 - accuracy: 0.9286\n",
      "Epoch 7/100\n",
      "1244/1244 [==============================] - 40s 32ms/step - loss: 0.1991 - accuracy: 0.9347\n",
      "Epoch 8/100\n",
      "1244/1244 [==============================] - 39s 32ms/step - loss: 0.1850 - accuracy: 0.9393\n",
      "Epoch 9/100\n",
      "1244/1244 [==============================] - 39s 32ms/step - loss: 0.1700 - accuracy: 0.9439\n",
      "Epoch 10/100\n",
      "1244/1244 [==============================] - 39s 32ms/step - loss: 0.1594 - accuracy: 0.9473\n",
      "Epoch 11/100\n",
      "1244/1244 [==============================] - 39s 32ms/step - loss: 0.1530 - accuracy: 0.9490\n",
      "Epoch 12/100\n",
      "1244/1244 [==============================] - 40s 32ms/step - loss: 0.1419 - accuracy: 0.9522\n",
      "Epoch 13/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.1350 - accuracy: 0.9551\n",
      "Epoch 14/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.1311 - accuracy: 0.9565\n",
      "Epoch 15/100\n",
      "1244/1244 [==============================] - 39s 32ms/step - loss: 0.1298 - accuracy: 0.9567\n",
      "Epoch 16/100\n",
      "1244/1244 [==============================] - 39s 32ms/step - loss: 0.1212 - accuracy: 0.9598\n",
      "Epoch 17/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.1159 - accuracy: 0.9615\n",
      "Epoch 18/100\n",
      "1244/1244 [==============================] - 39s 32ms/step - loss: 0.1127 - accuracy: 0.9628\n",
      "Epoch 19/100\n",
      "1244/1244 [==============================] - 39s 32ms/step - loss: 0.1104 - accuracy: 0.9635\n",
      "Epoch 20/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.1077 - accuracy: 0.9643\n",
      "Epoch 21/100\n",
      "1244/1244 [==============================] - 39s 32ms/step - loss: 0.1066 - accuracy: 0.9649\n",
      "Epoch 22/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.1028 - accuracy: 0.9666\n",
      "Epoch 23/100\n",
      "1244/1244 [==============================] - 39s 32ms/step - loss: 0.0976 - accuracy: 0.9678\n",
      "Epoch 24/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.1013 - accuracy: 0.9674\n",
      "Epoch 25/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.0997 - accuracy: 0.9677\n",
      "Epoch 26/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.0963 - accuracy: 0.9687\n",
      "Epoch 27/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.0940 - accuracy: 0.9696\n",
      "Epoch 28/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.0925 - accuracy: 0.9699\n",
      "Epoch 29/100\n",
      "1244/1244 [==============================] - 39s 32ms/step - loss: 0.0915 - accuracy: 0.9706\n",
      "Epoch 30/100\n",
      "1244/1244 [==============================] - 40s 32ms/step - loss: 0.0910 - accuracy: 0.9706\n",
      "Epoch 31/100\n",
      "1244/1244 [==============================] - 39s 32ms/step - loss: 0.0899 - accuracy: 0.9715\n",
      "Epoch 32/100\n",
      "1244/1244 [==============================] - 39s 32ms/step - loss: 0.0887 - accuracy: 0.9714\n",
      "Epoch 33/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.0893 - accuracy: 0.9716\n",
      "Epoch 34/100\n",
      "1244/1244 [==============================] - 39s 32ms/step - loss: 0.0851 - accuracy: 0.9734\n",
      "Epoch 35/100\n",
      "1244/1244 [==============================] - 39s 32ms/step - loss: 0.0866 - accuracy: 0.9725\n",
      "Epoch 36/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.0857 - accuracy: 0.9733\n",
      "Epoch 37/100\n",
      "1244/1244 [==============================] - 39s 32ms/step - loss: 0.0863 - accuracy: 0.9732\n",
      "Epoch 38/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.0844 - accuracy: 0.9739\n",
      "Epoch 39/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.0831 - accuracy: 0.9742\n",
      "Epoch 40/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.0863 - accuracy: 0.9736\n",
      "Epoch 41/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.0812 - accuracy: 0.9750\n",
      "Epoch 42/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.0792 - accuracy: 0.9756\n",
      "Epoch 43/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.0845 - accuracy: 0.9743\n",
      "Epoch 44/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.0842 - accuracy: 0.9745\n",
      "Epoch 45/100\n",
      "1244/1244 [==============================] - 39s 32ms/step - loss: 0.0788 - accuracy: 0.9757\n",
      "Epoch 46/100\n",
      "1244/1244 [==============================] - 39s 32ms/step - loss: 0.0790 - accuracy: 0.9759\n",
      "Epoch 47/100\n",
      "1244/1244 [==============================] - 39s 32ms/step - loss: 0.0767 - accuracy: 0.9761\n",
      "Epoch 48/100\n",
      "1244/1244 [==============================] - 39s 32ms/step - loss: 0.0795 - accuracy: 0.9759\n",
      "Epoch 49/100\n",
      "1244/1244 [==============================] - 39s 32ms/step - loss: 0.0800 - accuracy: 0.9753\n",
      "Epoch 50/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.0786 - accuracy: 0.9763\n",
      "Epoch 51/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.0770 - accuracy: 0.9771\n",
      "Epoch 52/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.0797 - accuracy: 0.9765\n",
      "Epoch 53/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.0783 - accuracy: 0.9768\n",
      "Epoch 54/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.0790 - accuracy: 0.9761\n",
      "Epoch 55/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.0764 - accuracy: 0.9772\n",
      "Epoch 56/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.0770 - accuracy: 0.9771\n",
      "Epoch 57/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.0746 - accuracy: 0.9783\n",
      "Epoch 58/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.0795 - accuracy: 0.9766\n",
      "Epoch 59/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.0745 - accuracy: 0.9776\n",
      "Epoch 60/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.0750 - accuracy: 0.9779\n",
      "Epoch 61/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.0765 - accuracy: 0.9783\n",
      "Epoch 62/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.0755 - accuracy: 0.9778\n",
      "Epoch 63/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.0768 - accuracy: 0.9780\n",
      "Epoch 64/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.0772 - accuracy: 0.9777\n",
      "Epoch 65/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.0744 - accuracy: 0.9784\n",
      "Epoch 66/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.0778 - accuracy: 0.9781\n",
      "Epoch 67/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.0717 - accuracy: 0.9796\n",
      "Epoch 68/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.0759 - accuracy: 0.9787\n",
      "Epoch 69/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.0725 - accuracy: 0.9789\n",
      "Epoch 70/100\n",
      "1244/1244 [==============================] - 39s 32ms/step - loss: 0.0738 - accuracy: 0.9794\n",
      "Epoch 71/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.0714 - accuracy: 0.9798\n",
      "Epoch 72/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.0746 - accuracy: 0.9788\n",
      "Epoch 73/100\n",
      "1244/1244 [==============================] - 40s 32ms/step - loss: 0.0721 - accuracy: 0.9796\n",
      "Epoch 74/100\n",
      "1244/1244 [==============================] - 40s 32ms/step - loss: 0.0726 - accuracy: 0.9801\n",
      "Epoch 75/100\n",
      "1244/1244 [==============================] - 39s 32ms/step - loss: 0.0726 - accuracy: 0.9798\n",
      "Epoch 76/100\n",
      "1244/1244 [==============================] - 39s 32ms/step - loss: 0.0769 - accuracy: 0.9786\n",
      "Epoch 77/100\n",
      "1244/1244 [==============================] - 39s 32ms/step - loss: 0.0751 - accuracy: 0.9789\n",
      "Epoch 78/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.0730 - accuracy: 0.9800\n",
      "Epoch 79/100\n",
      "1244/1244 [==============================] - 39s 32ms/step - loss: 0.0702 - accuracy: 0.9803\n",
      "Epoch 80/100\n",
      "1244/1244 [==============================] - 39s 32ms/step - loss: 0.0737 - accuracy: 0.9800\n",
      "Epoch 81/100\n",
      "1244/1244 [==============================] - 39s 32ms/step - loss: 0.0696 - accuracy: 0.9806\n",
      "Epoch 82/100\n",
      "1244/1244 [==============================] - 39s 32ms/step - loss: 0.0727 - accuracy: 0.9803\n",
      "Epoch 83/100\n",
      "1244/1244 [==============================] - 39s 32ms/step - loss: 0.0749 - accuracy: 0.9797\n",
      "Epoch 84/100\n",
      "1244/1244 [==============================] - 39s 31ms/step - loss: 0.0715 - accuracy: 0.9806\n",
      "Epoch 85/100\n",
      "1244/1244 [==============================] - 40s 32ms/step - loss: 0.0743 - accuracy: 0.9800\n",
      "Epoch 86/100\n",
      "1244/1244 [==============================] - 40s 32ms/step - loss: 0.0724 - accuracy: 0.9807\n",
      "Epoch 87/100\n",
      "1244/1244 [==============================] - 40s 32ms/step - loss: 0.0690 - accuracy: 0.9811\n",
      "Epoch 88/100\n",
      "1244/1244 [==============================] - 39s 32ms/step - loss: 0.0693 - accuracy: 0.9813\n",
      "Epoch 89/100\n",
      "1244/1244 [==============================] - 39s 32ms/step - loss: 0.0717 - accuracy: 0.9805\n",
      "Epoch 90/100\n",
      "1244/1244 [==============================] - 40s 32ms/step - loss: 0.0741 - accuracy: 0.9798\n",
      "Epoch 91/100\n",
      "1244/1244 [==============================] - 40s 32ms/step - loss: 0.0740 - accuracy: 0.9808\n",
      "Epoch 92/100\n",
      "1244/1244 [==============================] - 40s 32ms/step - loss: 0.0714 - accuracy: 0.9814\n",
      "Epoch 93/100\n",
      "1244/1244 [==============================] - 40s 32ms/step - loss: 0.0687 - accuracy: 0.9817\n",
      "Epoch 94/100\n",
      "1244/1244 [==============================] - 40s 32ms/step - loss: 0.0712 - accuracy: 0.9807\n",
      "Epoch 95/100\n",
      "1244/1244 [==============================] - 41s 33ms/step - loss: 0.0734 - accuracy: 0.9810\n",
      "Epoch 96/100\n",
      "1244/1244 [==============================] - 40s 32ms/step - loss: 0.0725 - accuracy: 0.9810\n",
      "Epoch 97/100\n",
      "1244/1244 [==============================] - 41s 33ms/step - loss: 0.0699 - accuracy: 0.9817\n",
      "Epoch 98/100\n",
      "1244/1244 [==============================] - 40s 33ms/step - loss: 0.0713 - accuracy: 0.9815\n",
      "Epoch 99/100\n",
      "1244/1244 [==============================] - 40s 32ms/step - loss: 0.0736 - accuracy: 0.9809\n",
      "Epoch 100/100\n",
      "1244/1244 [==============================] - 41s 33ms/step - loss: 0.0689 - accuracy: 0.9820\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<keras.src.callbacks.History at 0x7f1f606e8be0>"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Train the model\n",
    "model.fit(X_train, y_train, epochs=100, batch_size=128)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Evaluation"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Accuracu, loss"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "executionInfo": {
     "elapsed": 3304,
     "status": "ok",
     "timestamp": 1729805412775,
     "user": {
      "displayName": "Amirhossein Safari",
      "userId": "15860835955585744916"
     },
     "user_tz": -210
    },
    "id": "l6ANWdYjVcF_",
    "outputId": "7a8cf241-aede-42e0-e336-4afa8a16eca8"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1244/1244 - 5s - loss: 0.2774 - accuracy: 0.9566 - 5s/epoch - 4ms/step\n",
      "Test Loss: 0.2774\n",
      "Test Accuracy: 0.9566\n"
     ]
    }
   ],
   "source": [
    "# Evaluate the model on the test set\n",
    "test_loss, test_accuracy = model.evaluate(X_test, y_test, verbose=2)\n",
    "print(f'Test Loss: {test_loss:.4f}')\n",
    "print(f'Test Accuracy: {test_accuracy:.4f}')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## AUPR"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.metrics import precision_recall_curve, auc\n",
    "from tensorflow.keras.utils import to_categorical"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "def calculate_aupr(y_true, y_pred_probs):\n",
    "    \"\"\"\n",
    "    Calculate the Area Under the Precision-Recall Curve (AUPR).\n",
    "    \"\"\"\n",
    "    precision, recall, _ = precision_recall_curve(y_true.ravel(), y_pred_probs.ravel())\n",
    "    aupr = auc(recall, precision)\n",
    "    return aupr"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1244/1244 [==============================] - 5s 4ms/step\n",
      "AUPR: 0.9887\n"
     ]
    }
   ],
   "source": [
    "y_pred_probs = model.predict(X_test)\n",
    "y_test_onehot = to_categorical(y_test, num_classes=199)\n",
    "\n",
    "aupr = calculate_aupr(y_test_onehot, y_pred_probs)\n",
    "print(f\"AUPR: {aupr:.4f}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## AUC-ROC"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.metrics import roc_auc_score\n",
    "\n",
    "def calculate_auc_roc(y_true, y_pred_probs):\n",
    "    \"\"\"\n",
    "    Calculate the Area Under the Receiver Operating Characteristic Curve (AUC-ROC).\n",
    "    \"\"\"\n",
    "    auc_roc = roc_auc_score(y_true, y_pred_probs, multi_class='ovr')  # 'ovr' for one-vs-rest\n",
    "    return auc_roc"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1244/1244 [==============================] - 5s 4ms/step\n",
      "AUC-ROC: 0.9998\n"
     ]
    }
   ],
   "source": [
    "y_pred_probs = model.predict(X_test)\n",
    "auc_roc = calculate_auc_roc(y_test, y_pred_probs)\n",
    "print(f\"AUC-ROC: {auc_roc:.4f}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Confusion matrix"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.metrics import confusion_matrix\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "\n",
    "def calculate_confusion_matrix(y_true, y_pred):\n",
    "    \"\"\"\n",
    "    Calculate the confusion matrix.\n",
    "    \"\"\"\n",
    "    cm = confusion_matrix(y_true, y_pred)\n",
    "    return cm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1244/1244 [==============================] - 5s 4ms/step\n"
     ]
    },
    {
     "data": {
      "image/png": "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q3Gh3oqLi0NWVpZo2TvvvOPSo1ldXS16rNVqER8f71KmxJE/z6kVK1bgySefxF//+leP67g73ziOw7/+9S+XdYODgwHApVHeWXV1dcLMvc899xzeffdd/Pzzz3juued8el1CCCHSQbcVCSF90l/+8hds3LgRJ0+eFJWMGD9+PBYtWoR33nkHdXV1mDZtGrKzs7FhwwbMnTsXM2bM6PHYrr76aiiVSlx//fX4wx/+gKamJvzf//0fIiIiPE5i5MlXX32FDz74AAsWLMCRI0dE4wm1Wi3mzp2LkJAQrFu3DgsXLsQll1yC3/3udwgPD8fZs2fx1Vdf4fLLL8frr78OwF6yJTMzE+np6bjzzjtRU1OD1157DWPGjEFTU1OH8Tz66KM4fvw4Xn75ZXz33Xe48cYbERkZiYqKCmzbtg3Z2dk4cOAAAGDlypX4+OOPce211+L++++HwWDAhg0bUFxcjC1btrj0zPrirrvuwh//+EcsWLAAV111FX755Rfs3LnTpRdw9OjRmD59OlJTU2EwGJCTk4PPP/8c9913n8fX9uc5NX78eIwfP77ddRITExEXF4cVK1agtLQUISEh2LJli9sxoampqQCA+++/H7NmzYJMJsPvfve7Tsf1wAMPoLq6Grt374ZMJsM111yDu+66C88++yxuuOGGDmMmhBAifdTQJIT0SfHx8fj973+PDRs2uDz37rvvIjY2Fu+//z62bt2KyMhIrFq1Ck8++WSvxJaQkIDPP/8cjz/+OFasWIHIyEjce++9CA8Pd5mxtiN8b+SWLVuwZcsW0XPR0dHCWMnbbrsNQ4YMwfPPP4+///3vMJvNGDp0KDIyMrBkyRJhm2uuuQafffYZHn/8caxatQpxcXF477338MUXX+D777/vMB6WZfHBBx/ghhtuwDvvvIOXXnoJDQ0NCA8Px9SpU/Hiiy9i8uTJAIBBgwbhwIEDeOyxx/Daa6+hpaUFycnJ+M9//tPtvYB33303iouLsX79enz99dfIyMjArl27cOWVV4rWu//++/Hll1/im2++gdlsRnR0NJ599lk8+uij7b6+v8+p9igUCvznP//B/fffj7Vr10KlUmHevHm47777XBp88+fPx5/+9Cds3rwZH374ITiO63RD88svv8QHH3yAl19+WRi3C9h7eHft2oVFixbhxx9/FM3YTAghpO9hOF9mUSCE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iIiIiIiIiLpfv+yjSURERERERH2n383RJCIiIiIior7FgSYRERERERF1Kw40iYiIiIiIqFtxoElERERERETdigNNIiIiIiIi6lYcaBIREREREVG34kCTiIiIiIiIuhUHmkRERERERNStONAkIqJOue+++7Bo0SL5+xtuuAErV67s9Ti+/PJLCIKA2traHjuG7896NXojTiIionDDgSYRUT9w3333QRAECIIAg8GA0aNH47nnnkNLS0uPH/vDDz/E888/H9K2vT3oSklJwSuvvNIrxyIiIqI2ur4OgIiIusctt9yC//mf/4HT6cRnn32GFStWQK/XY82aNX7bulwuGAyGbjlubGxstzwOERER9R/MaBIR9RMRERFITExEcnIyHn74YcyfPx8ff/wxgLYS0BdeeAHXXHMN0tLSAADnz5/HXXfdhcGDByM2Nha33XYbzpw5Iz9ma2srHn/8cQwePBhWqxVPPPEERFFUHNe3dNbpdOLJJ59EUlISIiIiMHr0aOTk5ODMmTOYN28eACAmJgaCIOC+++4DALjdbrz44osYOXIkIiMjMWnSJLz//vuK43z22WcYO3YsIiMjMW/ePEWcV6O1tRUPPPCAfMy0tDT8/ve/D7jts88+i7i4OAwaNAg//vGP4XK55PtCiZ2IiGigYUaTiKifioyMRHV1tfz99u3bMWjQIGzduhUA0NzcjAULFmDGjBnYuXMndDodfvnLX+KWW27B0aNHYTAY8PLLL+NPf/oT/vjHPyIjIwMvv/wy/vKXv+DGG28Metx7770Xe/fuxauvvopJkybh9OnTuHTpEpKSkvDBBx/gjjvuQGFhIQYNGoTIyEgAwIsvvoi3334br732GsaMGYPc3Fz88Ic/RFxcHK6//nqcP38et99+O1asWIGHHnoIeXl5WLVqVZfOj9vtxvDhw/Hee+/BarViz549eOihhzB06FDcddddivNmNBrx5Zdf4syZM7j//vthtVrxwgsvhBQ7ERHRgCQSEZHqLVu2TLzttttEURRFt9stbt26VYyIiBBXr14t35+QkCA6nU55n7feektMS0sT3W63fJvT6RQjIyPFLVu2iKIoikOHDhV/85vfyPc3NzeLw4cPl48liqJ4/fXXiz/5yU9EURTFwsJCEYC4devWgHH+4x//EAGINTU18m1NTU1iVFSUuGfPHsW2DzzwgPiDH/xAFEVRXLNmjThu3DjF/U8++aTfY/lKTk4W//M//zPo/b5WrFgh3nHHHfL3y5YtE2NjY8XGxkb5tg0bNogmk0lsbW0NKfZAPzMREVF/x4wmEVE/8emnn8JkMqG5uRlutxv33HMP1q5dK98/ceJExbzMr7/+GkVFRTCbzYrHaWpqQnFxMerq6lBWVobp06fL9+l0OthsNr/yWcmRI0eg1Wo7lckrKiqC3W7Hd77zHcXtLpcLWVlZAICCggJFHAAwY8aMkI8RzLp16/DHP/4R586dg8PhgMvlwuTJkxXbTJo0CVFRUYrjNjQ04Pz582hoaOgwdiIiooGIA00ion5i3rx52LBhAwwGA6655hrodMq3+OjoaMX3DQ0NmDJlCjZu3Oj3WHFxcVcVg1QK2xkNDQ0AgL/97W8YNmyY4r6IiIiriiMU77zzDlavXo2XX34ZM2bMgNlsxksvvYT9+/eH/Bh9FTsREVG440CTiKifiI6OxujRo0Pe/tprr8W7776L+Ph4DBo0KOA2Q4cOxf79+zF37lwAQEtLCw4ePIhrr7024PYTJ06E2+3Gjh07MH/+fL/7pYxqa2urfNu4ceMQERGBc+fOBc2EZmRkyAsbSfbt29fxD9mO3bt3Y+bMmVi+fLl8W3Fxsd92X3/9NRwOhzyI3rdvH0wmE5KSkhAbG9th7ERERAMRV50lIhqglixZgiFDhuC2227Dzp07cfr0aXz55Zf4t3/7N1y4cAEA8JOf/AS//vWv8dFHH+HEiRNYvnx5uz0wU1JSsGzZMvzoRz/CRx99JD/mpk2bAADJyckQBAGffvopqqqq0NDQALPZjNWrV+Oxxx7Dm2++ieLiYhw6dAj/9V//hTfffBMA8OMf/xinTp3CT3/6UxQWFuLPf/4z/vSnP4X0c168eBFHjhxRfNXU1GDMmDHIy8vDli1bcPLkSfz85z/HV1995be/y+XCAw88gOPHj+Ozzz7DM888g0ceeQQajSak2ImIiAYiDjSJiAaoqKgo5ObmYsSIEbj99tuRkZGBBx54AE1NTXKGc9WqVVi6dCmWLVsml5cuXry43cfdsGED7rzzTixfvhzp6el48MEH0djYCAAYNmwYnn32WTz11FNISEjAI488AgB4/vnn8fOf/xwvvvgiMjIycMstt+Bvf/sbRo4cCQAYMWIEPvjgA3z00UeYNGkSXnvtNfzqV78K6ef87W9/i6ysLMXX3/72N/zrv/4rbr/9dtx9992YPn06qqurFdlNyU033YQxY8Zg7ty5uPvuu7Fw4ULF3NeOYiciIhqIBDHYig5EREREREREV4EZTSIiIiIiIupWHGgSERERERFRt+JAk4iIiIiIiLoVB5pERERERETUrTjQJCIiIiIiom7FgSYRERERERF1Kw40iYiIiIiIqFtxoElERERERETdigNNIiIiIiIi6lYcaBIREREREVG34kCTiIiIiIiIuhUHmkRERERERNSt/j+L/IDIFChGrAAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 1000x800 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "y_pred_probs = model.predict(X_test)\n",
    "y_pred = np.argmax(y_pred_probs, axis=1)\n",
    "cm = calculate_confusion_matrix(y_test, y_pred)\n",
    "class_names = 199\n",
    " \n",
    "# Create a heatmap\n",
    "plt.figure(figsize=(10, 8))\n",
    "sns.heatmap(cm, annot=True, cmap='Blues', fmt='.2f', xticklabels=class_names, yticklabels=class_names)\n",
    "plt.title('Normalized Confusion Matrix')\n",
    "plt.xlabel('Predicted Label')\n",
    "plt.ylabel('True Label')\n",
    "plt.tight_layout()\n",
    "plt.show()\n",
    "plt.close()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Finding the most faultful user"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Finding the most faultful user\n",
    "mis_pred = {}\n",
    "for lbl in label_dict.values():\n",
    "    mis_pred[lbl] = 0\n",
    "\n",
    "for index in range(len(y_pred)):\n",
    "    if y_pred[index] != y_test[index]:\n",
    "        mis_pred[y_pred[index]] += 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Swap keys and values\n",
    "swapped_label_dict = {v: k for k, v in label_dict.items()}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Top 10 most faultful users and their mispredictions:\n",
      "User: 4214, Mispredictions: 62\n",
      "User: 10023, Mispredictions: 59\n",
      "User: 10083, Mispredictions: 50\n",
      "User: 2007, Mispredictions: 46\n",
      "User: 4043, Mispredictions: 41\n",
      "User: 6006, Mispredictions: 41\n",
      "User: 4085, Mispredictions: 40\n",
      "User: 6130, Mispredictions: 40\n",
      "User: 6129, Mispredictions: 34\n",
      "User: 6031, Mispredictions: 32\n"
     ]
    }
   ],
   "source": [
    "# Sort the dictionary by values in descending order\n",
    "sorted_mis_pred = sorted(mis_pred.items(), key=lambda x: x[1], reverse=True)\n",
    "\n",
    "# Get the top 10 most faultful users\n",
    "top_10 = sorted_mis_pred[:10]\n",
    "\n",
    "print(\"Top 10 most faultful users and their mispredictions:\")\n",
    "for user, count in top_10:\n",
    "    print(f\"User: {swapped_label_dict[user]}, Mispredictions: {count}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Saving the model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/sadeghi/Amirhossein/panTompkins/bpf based in boudary EKM alpha 0.2 elements 6000/.venv/lib/python3.8/site-packages/keras/src/engine/training.py:3000: UserWarning: You are saving your model as an HDF5 file via `model.save()`. This file format is considered legacy. We recommend using instead the native Keras format, e.g. `model.save('my_model.keras')`.\n",
      "  saving_api.save_model(\n"
     ]
    }
   ],
   "source": [
    "# Save the model in HDF5 format\n",
    "model.save(\"../5bpf_6sec_inBoundary_1000_auth_6000.h5\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Loading the model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "from tensorflow.keras.models import load_model\n",
    "\n",
    "# Load the HDF5 model\n",
    "model = load_model(\"./5bpf_6sec_inBoundary_1000_auth_6000.h5\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 10 fold validation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.model_selection import StratifiedKFold"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "n_splits = 10\n",
    "skf = StratifiedKFold(n_splits=10, shuffle=True, random_state=42)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Metrics to store performance\n",
    "folds_evaluation = {}\n",
    "fold_accuracies = []\n",
    "\n",
    "for index in range(n_splits):\n",
    "    folds_evaluation[index] = {}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1072 - accuracy: 0.9741\n",
      "Epoch 2/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0917 - accuracy: 0.9761\n",
      "Epoch 3/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0879 - accuracy: 0.9768\n",
      "Epoch 4/100\n",
      "1400/1400 [==============================] - 43s 30ms/step - loss: 0.0864 - accuracy: 0.9769\n",
      "Epoch 5/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0850 - accuracy: 0.9773\n",
      "Epoch 6/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0842 - accuracy: 0.9773\n",
      "Epoch 7/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0806 - accuracy: 0.9781\n",
      "Epoch 8/100\n",
      "1400/1400 [==============================] - 43s 30ms/step - loss: 0.0837 - accuracy: 0.9776\n",
      "Epoch 9/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0809 - accuracy: 0.9783\n",
      "Epoch 10/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0797 - accuracy: 0.9783\n",
      "Epoch 11/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0783 - accuracy: 0.9793\n",
      "Epoch 12/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0787 - accuracy: 0.9790\n",
      "Epoch 13/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0803 - accuracy: 0.9785\n",
      "Epoch 14/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0771 - accuracy: 0.9795\n",
      "Epoch 15/100\n",
      "1400/1400 [==============================] - 43s 30ms/step - loss: 0.0765 - accuracy: 0.9796\n",
      "Epoch 16/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0763 - accuracy: 0.9801\n",
      "Epoch 17/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0739 - accuracy: 0.9806\n",
      "Epoch 18/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0755 - accuracy: 0.9800\n",
      "Epoch 19/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0769 - accuracy: 0.9792\n",
      "Epoch 20/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0751 - accuracy: 0.9803\n",
      "Epoch 21/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0755 - accuracy: 0.9804\n",
      "Epoch 22/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0752 - accuracy: 0.9805\n",
      "Epoch 23/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0716 - accuracy: 0.9812\n",
      "Epoch 24/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0757 - accuracy: 0.9803\n",
      "Epoch 25/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0721 - accuracy: 0.9807\n",
      "Epoch 26/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0760 - accuracy: 0.9800\n",
      "Epoch 27/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0723 - accuracy: 0.9811\n",
      "Epoch 28/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0775 - accuracy: 0.9804\n",
      "Epoch 29/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0719 - accuracy: 0.9814\n",
      "Epoch 30/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0734 - accuracy: 0.9812\n",
      "Epoch 31/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0728 - accuracy: 0.9808\n",
      "Epoch 32/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0761 - accuracy: 0.9808\n",
      "Epoch 33/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0753 - accuracy: 0.9812\n",
      "Epoch 34/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0697 - accuracy: 0.9817\n",
      "Epoch 35/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0726 - accuracy: 0.9818\n",
      "Epoch 36/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0736 - accuracy: 0.9815\n",
      "Epoch 37/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0732 - accuracy: 0.9815\n",
      "Epoch 38/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0686 - accuracy: 0.9824\n",
      "Epoch 39/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0725 - accuracy: 0.9821\n",
      "Epoch 40/100\n",
      "1400/1400 [==============================] - 41s 30ms/step - loss: 0.0730 - accuracy: 0.9818\n",
      "Epoch 41/100\n",
      "1400/1400 [==============================] - 41s 30ms/step - loss: 0.0713 - accuracy: 0.9823\n",
      "Epoch 42/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0766 - accuracy: 0.9811\n",
      "Epoch 43/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0698 - accuracy: 0.9822\n",
      "Epoch 44/100\n",
      "1400/1400 [==============================] - 41s 30ms/step - loss: 0.0709 - accuracy: 0.9823\n",
      "Epoch 45/100\n",
      "1400/1400 [==============================] - 41s 30ms/step - loss: 0.0758 - accuracy: 0.9815\n",
      "Epoch 46/100\n",
      "1400/1400 [==============================] - 41s 30ms/step - loss: 0.0711 - accuracy: 0.9821\n",
      "Epoch 47/100\n",
      "1400/1400 [==============================] - 41s 30ms/step - loss: 0.0715 - accuracy: 0.9823\n",
      "Epoch 48/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0679 - accuracy: 0.9829\n",
      "Epoch 49/100\n",
      "1400/1400 [==============================] - 41s 30ms/step - loss: 0.0715 - accuracy: 0.9824\n",
      "Epoch 50/100\n",
      "1400/1400 [==============================] - 41s 30ms/step - loss: 0.0759 - accuracy: 0.9817\n",
      "Epoch 51/100\n",
      "1400/1400 [==============================] - 41s 30ms/step - loss: 0.0683 - accuracy: 0.9833\n",
      "Epoch 52/100\n",
      "1400/1400 [==============================] - 41s 29ms/step - loss: 0.0704 - accuracy: 0.9827\n",
      "Epoch 53/100\n",
      "1400/1400 [==============================] - 41s 30ms/step - loss: 0.0730 - accuracy: 0.9825\n",
      "Epoch 54/100\n",
      "1400/1400 [==============================] - 41s 30ms/step - loss: 0.0740 - accuracy: 0.9824\n",
      "Epoch 55/100\n",
      "1400/1400 [==============================] - 41s 30ms/step - loss: 0.0710 - accuracy: 0.9830\n",
      "Epoch 56/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0705 - accuracy: 0.9831\n",
      "Epoch 57/100\n",
      "1400/1400 [==============================] - 41s 30ms/step - loss: 0.0705 - accuracy: 0.9829\n",
      "Epoch 58/100\n",
      "1400/1400 [==============================] - 41s 30ms/step - loss: 0.0735 - accuracy: 0.9825\n",
      "Epoch 59/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0729 - accuracy: 0.9827\n",
      "Epoch 60/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0715 - accuracy: 0.9828\n",
      "Epoch 61/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0716 - accuracy: 0.9829\n",
      "Epoch 62/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0703 - accuracy: 0.9830\n",
      "Epoch 63/100\n",
      "1400/1400 [==============================] - 41s 30ms/step - loss: 0.0689 - accuracy: 0.9836\n",
      "Epoch 64/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0736 - accuracy: 0.9829\n",
      "Epoch 65/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0719 - accuracy: 0.9832\n",
      "Epoch 66/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0754 - accuracy: 0.9828\n",
      "Epoch 67/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0750 - accuracy: 0.9828\n",
      "Epoch 68/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0735 - accuracy: 0.9829\n",
      "Epoch 69/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0697 - accuracy: 0.9831\n",
      "Epoch 70/100\n",
      "1400/1400 [==============================] - 41s 30ms/step - loss: 0.0704 - accuracy: 0.9836\n",
      "Epoch 71/100\n",
      "1400/1400 [==============================] - 41s 30ms/step - loss: 0.0755 - accuracy: 0.9828\n",
      "Epoch 72/100\n",
      "1400/1400 [==============================] - 41s 30ms/step - loss: 0.0722 - accuracy: 0.9831\n",
      "Epoch 73/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0702 - accuracy: 0.9834\n",
      "Epoch 74/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0753 - accuracy: 0.9828\n",
      "Epoch 75/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0735 - accuracy: 0.9835\n",
      "Epoch 76/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0692 - accuracy: 0.9837\n",
      "Epoch 77/100\n",
      "1400/1400 [==============================] - 41s 30ms/step - loss: 0.0744 - accuracy: 0.9828\n",
      "Epoch 78/100\n",
      "1400/1400 [==============================] - 41s 30ms/step - loss: 0.0707 - accuracy: 0.9836\n",
      "Epoch 79/100\n",
      "1400/1400 [==============================] - 41s 30ms/step - loss: 0.0724 - accuracy: 0.9841\n",
      "Epoch 80/100\n",
      "1400/1400 [==============================] - 41s 30ms/step - loss: 0.0724 - accuracy: 0.9832\n",
      "Epoch 81/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0757 - accuracy: 0.9830\n",
      "Epoch 82/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0697 - accuracy: 0.9843\n",
      "Epoch 83/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0741 - accuracy: 0.9833\n",
      "Epoch 84/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0685 - accuracy: 0.9843\n",
      "Epoch 85/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0731 - accuracy: 0.9838\n",
      "Epoch 86/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0715 - accuracy: 0.9840\n",
      "Epoch 87/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0742 - accuracy: 0.9838\n",
      "Epoch 88/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0750 - accuracy: 0.9838\n",
      "Epoch 89/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0709 - accuracy: 0.9843\n",
      "Epoch 90/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0726 - accuracy: 0.9840\n",
      "Epoch 91/100\n",
      "1400/1400 [==============================] - 41s 30ms/step - loss: 0.0740 - accuracy: 0.9836\n",
      "Epoch 92/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0752 - accuracy: 0.9834\n",
      "Epoch 93/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0699 - accuracy: 0.9845\n",
      "Epoch 94/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0733 - accuracy: 0.9836\n",
      "Epoch 95/100\n",
      "1400/1400 [==============================] - 41s 30ms/step - loss: 0.0700 - accuracy: 0.9842\n",
      "Epoch 96/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0703 - accuracy: 0.9845\n",
      "Epoch 97/100\n",
      "1400/1400 [==============================] - 41s 30ms/step - loss: 0.0731 - accuracy: 0.9839\n",
      "Epoch 98/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0775 - accuracy: 0.9832\n",
      "Epoch 99/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0735 - accuracy: 0.9842\n",
      "Epoch 100/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0730 - accuracy: 0.9840\n",
      "622/622 - 2s - loss: 0.1019 - accuracy: 0.9801 - 2s/epoch - 3ms/step\n",
      "622/622 [==============================] - 2s 4ms/step\n",
      "Epoch 1/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0980 - accuracy: 0.9801\n",
      "Epoch 2/100\n",
      "1400/1400 [==============================] - 41s 30ms/step - loss: 0.0897 - accuracy: 0.9805\n",
      "Epoch 3/100\n",
      "1400/1400 [==============================] - 41s 30ms/step - loss: 0.0850 - accuracy: 0.9812\n",
      "Epoch 4/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0847 - accuracy: 0.9809\n",
      "Epoch 5/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0853 - accuracy: 0.9809\n",
      "Epoch 6/100\n",
      "1400/1400 [==============================] - 41s 30ms/step - loss: 0.0793 - accuracy: 0.9819\n",
      "Epoch 7/100\n",
      "1400/1400 [==============================] - 41s 30ms/step - loss: 0.0808 - accuracy: 0.9818\n",
      "Epoch 8/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0783 - accuracy: 0.9819\n",
      "Epoch 9/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0797 - accuracy: 0.9817\n",
      "Epoch 10/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0809 - accuracy: 0.9822\n",
      "Epoch 11/100\n",
      "1400/1400 [==============================] - 41s 30ms/step - loss: 0.0760 - accuracy: 0.9830\n",
      "Epoch 12/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0749 - accuracy: 0.9829\n",
      "Epoch 13/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0756 - accuracy: 0.9828\n",
      "Epoch 14/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0800 - accuracy: 0.9825\n",
      "Epoch 15/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0745 - accuracy: 0.9829\n",
      "Epoch 16/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0753 - accuracy: 0.9833\n",
      "Epoch 17/100\n",
      "1400/1400 [==============================] - 41s 30ms/step - loss: 0.0759 - accuracy: 0.9830\n",
      "Epoch 18/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0751 - accuracy: 0.9832\n",
      "Epoch 19/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0735 - accuracy: 0.9835\n",
      "Epoch 20/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0700 - accuracy: 0.9840\n",
      "Epoch 21/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0718 - accuracy: 0.9837\n",
      "Epoch 22/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0790 - accuracy: 0.9826\n",
      "Epoch 23/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0738 - accuracy: 0.9835\n",
      "Epoch 24/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0772 - accuracy: 0.9830\n",
      "Epoch 25/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0716 - accuracy: 0.9840\n",
      "Epoch 26/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0767 - accuracy: 0.9835\n",
      "Epoch 27/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0732 - accuracy: 0.9842\n",
      "Epoch 28/100\n",
      "1400/1400 [==============================] - 43s 30ms/step - loss: 0.0715 - accuracy: 0.9841\n",
      "Epoch 29/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0724 - accuracy: 0.9843\n",
      "Epoch 30/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0740 - accuracy: 0.9840\n",
      "Epoch 31/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0798 - accuracy: 0.9831\n",
      "Epoch 32/100\n",
      "1400/1400 [==============================] - 41s 30ms/step - loss: 0.0703 - accuracy: 0.9845\n",
      "Epoch 33/100\n",
      "1400/1400 [==============================] - 41s 30ms/step - loss: 0.0775 - accuracy: 0.9837\n",
      "Epoch 34/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0695 - accuracy: 0.9847\n",
      "Epoch 35/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0765 - accuracy: 0.9840\n",
      "Epoch 36/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0747 - accuracy: 0.9841\n",
      "Epoch 37/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0725 - accuracy: 0.9840\n",
      "Epoch 38/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0793 - accuracy: 0.9835\n",
      "Epoch 39/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0713 - accuracy: 0.9843\n",
      "Epoch 40/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0745 - accuracy: 0.9845\n",
      "Epoch 41/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0723 - accuracy: 0.9844\n",
      "Epoch 42/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0723 - accuracy: 0.9843\n",
      "Epoch 43/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0772 - accuracy: 0.9840\n",
      "Epoch 44/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0710 - accuracy: 0.9849\n",
      "Epoch 45/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0751 - accuracy: 0.9842\n",
      "Epoch 46/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0709 - accuracy: 0.9847\n",
      "Epoch 47/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0755 - accuracy: 0.9842\n",
      "Epoch 48/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0751 - accuracy: 0.9843\n",
      "Epoch 49/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0745 - accuracy: 0.9843\n",
      "Epoch 50/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0744 - accuracy: 0.9845\n",
      "Epoch 51/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0769 - accuracy: 0.9840\n",
      "Epoch 52/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0716 - accuracy: 0.9847\n",
      "Epoch 53/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0783 - accuracy: 0.9841\n",
      "Epoch 54/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0752 - accuracy: 0.9843\n",
      "Epoch 55/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0765 - accuracy: 0.9841\n",
      "Epoch 56/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0665 - accuracy: 0.9856\n",
      "Epoch 57/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0742 - accuracy: 0.9851\n",
      "Epoch 58/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0762 - accuracy: 0.9842\n",
      "Epoch 59/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0724 - accuracy: 0.9852\n",
      "Epoch 60/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0729 - accuracy: 0.9854\n",
      "Epoch 61/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0718 - accuracy: 0.9850\n",
      "Epoch 62/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0753 - accuracy: 0.9840\n",
      "Epoch 63/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0689 - accuracy: 0.9851\n",
      "Epoch 64/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0771 - accuracy: 0.9848\n",
      "Epoch 65/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0781 - accuracy: 0.9838\n",
      "Epoch 66/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0763 - accuracy: 0.9848\n",
      "Epoch 67/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0788 - accuracy: 0.9841\n",
      "Epoch 68/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0729 - accuracy: 0.9854\n",
      "Epoch 69/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0752 - accuracy: 0.9848\n",
      "Epoch 70/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0750 - accuracy: 0.9852\n",
      "Epoch 71/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0767 - accuracy: 0.9846\n",
      "Epoch 72/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0787 - accuracy: 0.9846\n",
      "Epoch 73/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0726 - accuracy: 0.9854\n",
      "Epoch 74/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0769 - accuracy: 0.9848\n",
      "Epoch 75/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0773 - accuracy: 0.9848\n",
      "Epoch 76/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0760 - accuracy: 0.9853\n",
      "Epoch 77/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0706 - accuracy: 0.9852\n",
      "Epoch 78/100\n",
      "1400/1400 [==============================] - 41s 30ms/step - loss: 0.0779 - accuracy: 0.9845\n",
      "Epoch 79/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0746 - accuracy: 0.9852\n",
      "Epoch 80/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0703 - accuracy: 0.9860\n",
      "Epoch 81/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0731 - accuracy: 0.9853\n",
      "Epoch 82/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0763 - accuracy: 0.9851\n",
      "Epoch 83/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0702 - accuracy: 0.9858\n",
      "Epoch 84/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0759 - accuracy: 0.9852\n",
      "Epoch 85/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0784 - accuracy: 0.9849\n",
      "Epoch 86/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0707 - accuracy: 0.9854\n",
      "Epoch 87/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0769 - accuracy: 0.9850\n",
      "Epoch 88/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0742 - accuracy: 0.9850\n",
      "Epoch 89/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0765 - accuracy: 0.9847\n",
      "Epoch 90/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0730 - accuracy: 0.9851\n",
      "Epoch 91/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0748 - accuracy: 0.9852\n",
      "Epoch 92/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0752 - accuracy: 0.9849\n",
      "Epoch 93/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0690 - accuracy: 0.9860\n",
      "Epoch 94/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0745 - accuracy: 0.9857\n",
      "Epoch 95/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0794 - accuracy: 0.9850\n",
      "Epoch 96/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0769 - accuracy: 0.9850\n",
      "Epoch 97/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0752 - accuracy: 0.9851\n",
      "Epoch 98/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0726 - accuracy: 0.9860\n",
      "Epoch 99/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0760 - accuracy: 0.9848\n",
      "Epoch 100/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0733 - accuracy: 0.9853\n",
      "622/622 - 2s - loss: 0.0929 - accuracy: 0.9802 - 2s/epoch - 3ms/step\n",
      "622/622 [==============================] - 2s 4ms/step\n",
      "Epoch 1/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.1051 - accuracy: 0.9810\n",
      "Epoch 2/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0942 - accuracy: 0.9822\n",
      "Epoch 3/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0916 - accuracy: 0.9824\n",
      "Epoch 4/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0850 - accuracy: 0.9830\n",
      "Epoch 5/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0784 - accuracy: 0.9840\n",
      "Epoch 6/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0818 - accuracy: 0.9837\n",
      "Epoch 7/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0838 - accuracy: 0.9832\n",
      "Epoch 8/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0838 - accuracy: 0.9841\n",
      "Epoch 9/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0813 - accuracy: 0.9842\n",
      "Epoch 10/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0859 - accuracy: 0.9834\n",
      "Epoch 11/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0816 - accuracy: 0.9838\n",
      "Epoch 12/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0823 - accuracy: 0.9835\n",
      "Epoch 13/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0769 - accuracy: 0.9848\n",
      "Epoch 14/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0836 - accuracy: 0.9840\n",
      "Epoch 15/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0825 - accuracy: 0.9839\n",
      "Epoch 16/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0818 - accuracy: 0.9838\n",
      "Epoch 17/100\n",
      "1400/1400 [==============================] - 46s 33ms/step - loss: 0.0788 - accuracy: 0.9848\n",
      "Epoch 18/100\n",
      "1400/1400 [==============================] - 46s 33ms/step - loss: 0.0819 - accuracy: 0.9844\n",
      "Epoch 19/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0798 - accuracy: 0.9846\n",
      "Epoch 20/100\n",
      "1400/1400 [==============================] - 44s 32ms/step - loss: 0.0789 - accuracy: 0.9843\n",
      "Epoch 21/100\n",
      "1400/1400 [==============================] - 44s 32ms/step - loss: 0.0797 - accuracy: 0.9845\n",
      "Epoch 22/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0779 - accuracy: 0.9850\n",
      "Epoch 23/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0829 - accuracy: 0.9843\n",
      "Epoch 24/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0742 - accuracy: 0.9854\n",
      "Epoch 25/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0888 - accuracy: 0.9836\n",
      "Epoch 26/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0752 - accuracy: 0.9857\n",
      "Epoch 27/100\n",
      "1400/1400 [==============================] - 44s 32ms/step - loss: 0.0760 - accuracy: 0.9852\n",
      "Epoch 28/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0848 - accuracy: 0.9838\n",
      "Epoch 29/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0818 - accuracy: 0.9848\n",
      "Epoch 30/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0790 - accuracy: 0.9854\n",
      "Epoch 31/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0807 - accuracy: 0.9853\n",
      "Epoch 32/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0832 - accuracy: 0.9844\n",
      "Epoch 33/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0776 - accuracy: 0.9853\n",
      "Epoch 34/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0765 - accuracy: 0.9856\n",
      "Epoch 35/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0822 - accuracy: 0.9846\n",
      "Epoch 36/100\n",
      "1400/1400 [==============================] - 44s 32ms/step - loss: 0.0760 - accuracy: 0.9851\n",
      "Epoch 37/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0835 - accuracy: 0.9847\n",
      "Epoch 38/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0759 - accuracy: 0.9859\n",
      "Epoch 39/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0813 - accuracy: 0.9851\n",
      "Epoch 40/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0788 - accuracy: 0.9854\n",
      "Epoch 41/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0818 - accuracy: 0.9853\n",
      "Epoch 42/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0805 - accuracy: 0.9852\n",
      "Epoch 43/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0754 - accuracy: 0.9859\n",
      "Epoch 44/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0772 - accuracy: 0.9855\n",
      "Epoch 45/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0835 - accuracy: 0.9847\n",
      "Epoch 46/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0848 - accuracy: 0.9848\n",
      "Epoch 47/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0768 - accuracy: 0.9859\n",
      "Epoch 48/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0794 - accuracy: 0.9857\n",
      "Epoch 49/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0778 - accuracy: 0.9859\n",
      "Epoch 50/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0784 - accuracy: 0.9855\n",
      "Epoch 51/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0803 - accuracy: 0.9848\n",
      "Epoch 52/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0832 - accuracy: 0.9853\n",
      "Epoch 53/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0781 - accuracy: 0.9857\n",
      "Epoch 54/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0829 - accuracy: 0.9851\n",
      "Epoch 55/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0799 - accuracy: 0.9855\n",
      "Epoch 56/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0812 - accuracy: 0.9855\n",
      "Epoch 57/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0809 - accuracy: 0.9858\n",
      "Epoch 58/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0784 - accuracy: 0.9855\n",
      "Epoch 59/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0754 - accuracy: 0.9862\n",
      "Epoch 60/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0815 - accuracy: 0.9855\n",
      "Epoch 61/100\n",
      "1400/1400 [==============================] - 44s 32ms/step - loss: 0.0832 - accuracy: 0.9851\n",
      "Epoch 62/100\n",
      "1400/1400 [==============================] - 44s 32ms/step - loss: 0.0677 - accuracy: 0.9869\n",
      "Epoch 63/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0827 - accuracy: 0.9856\n",
      "Epoch 64/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0847 - accuracy: 0.9853\n",
      "Epoch 65/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0758 - accuracy: 0.9860\n",
      "Epoch 66/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0756 - accuracy: 0.9863\n",
      "Epoch 67/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0842 - accuracy: 0.9853\n",
      "Epoch 68/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0738 - accuracy: 0.9863\n",
      "Epoch 69/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0831 - accuracy: 0.9858\n",
      "Epoch 70/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0879 - accuracy: 0.9849\n",
      "Epoch 71/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0787 - accuracy: 0.9865\n",
      "Epoch 72/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0837 - accuracy: 0.9851\n",
      "Epoch 73/100\n",
      "1400/1400 [==============================] - 43s 30ms/step - loss: 0.0779 - accuracy: 0.9864\n",
      "Epoch 74/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0815 - accuracy: 0.9857\n",
      "Epoch 75/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0787 - accuracy: 0.9860\n",
      "Epoch 76/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0850 - accuracy: 0.9857\n",
      "Epoch 77/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0813 - accuracy: 0.9854\n",
      "Epoch 78/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0820 - accuracy: 0.9860\n",
      "Epoch 79/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0775 - accuracy: 0.9858\n",
      "Epoch 80/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0848 - accuracy: 0.9857\n",
      "Epoch 81/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0783 - accuracy: 0.9862\n",
      "Epoch 82/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0855 - accuracy: 0.9854\n",
      "Epoch 83/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0811 - accuracy: 0.9863\n",
      "Epoch 84/100\n",
      "1400/1400 [==============================] - 43s 30ms/step - loss: 0.0799 - accuracy: 0.9861\n",
      "Epoch 85/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0828 - accuracy: 0.9859\n",
      "Epoch 86/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0753 - accuracy: 0.9868\n",
      "Epoch 87/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0812 - accuracy: 0.9863\n",
      "Epoch 88/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0813 - accuracy: 0.9860\n",
      "Epoch 89/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0837 - accuracy: 0.9861\n",
      "Epoch 90/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0811 - accuracy: 0.9864\n",
      "Epoch 91/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0853 - accuracy: 0.9863\n",
      "Epoch 92/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0796 - accuracy: 0.9858\n",
      "Epoch 93/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0819 - accuracy: 0.9862\n",
      "Epoch 94/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0784 - accuracy: 0.9866\n",
      "Epoch 95/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0896 - accuracy: 0.9852\n",
      "Epoch 96/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0808 - accuracy: 0.9862\n",
      "Epoch 97/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0876 - accuracy: 0.9857\n",
      "Epoch 98/100\n",
      "1400/1400 [==============================] - 43s 30ms/step - loss: 0.0801 - accuracy: 0.9867\n",
      "Epoch 99/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0835 - accuracy: 0.9861\n",
      "Epoch 100/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0877 - accuracy: 0.9854\n",
      "622/622 - 2s - loss: 0.0640 - accuracy: 0.9867 - 2s/epoch - 4ms/step\n",
      "622/622 [==============================] - 2s 4ms/step\n",
      "Epoch 1/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1056 - accuracy: 0.9834\n",
      "Epoch 2/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0980 - accuracy: 0.9839\n",
      "Epoch 3/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0959 - accuracy: 0.9838\n",
      "Epoch 4/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0950 - accuracy: 0.9836\n",
      "Epoch 5/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0949 - accuracy: 0.9835\n",
      "Epoch 6/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0880 - accuracy: 0.9842\n",
      "Epoch 7/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0974 - accuracy: 0.9832\n",
      "Epoch 8/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0877 - accuracy: 0.9843\n",
      "Epoch 9/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0860 - accuracy: 0.9850\n",
      "Epoch 10/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0984 - accuracy: 0.9840\n",
      "Epoch 11/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0867 - accuracy: 0.9847\n",
      "Epoch 12/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0920 - accuracy: 0.9848\n",
      "Epoch 13/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0897 - accuracy: 0.9852\n",
      "Epoch 14/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0879 - accuracy: 0.9848\n",
      "Epoch 15/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0902 - accuracy: 0.9849\n",
      "Epoch 16/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0851 - accuracy: 0.9850\n",
      "Epoch 17/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0816 - accuracy: 0.9862\n",
      "Epoch 18/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0916 - accuracy: 0.9848\n",
      "Epoch 19/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0964 - accuracy: 0.9843\n",
      "Epoch 20/100\n",
      "1400/1400 [==============================] - 44s 32ms/step - loss: 0.0883 - accuracy: 0.9848\n",
      "Epoch 21/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0869 - accuracy: 0.9850\n",
      "Epoch 22/100\n",
      "1400/1400 [==============================] - 43s 30ms/step - loss: 0.0942 - accuracy: 0.9842\n",
      "Epoch 23/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0949 - accuracy: 0.9846\n",
      "Epoch 24/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0869 - accuracy: 0.9857\n",
      "Epoch 25/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0832 - accuracy: 0.9859\n",
      "Epoch 26/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0868 - accuracy: 0.9852\n",
      "Epoch 27/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0913 - accuracy: 0.9853\n",
      "Epoch 28/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0862 - accuracy: 0.9856\n",
      "Epoch 29/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0837 - accuracy: 0.9856\n",
      "Epoch 30/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0802 - accuracy: 0.9859\n",
      "Epoch 31/100\n",
      "1400/1400 [==============================] - 41s 30ms/step - loss: 0.0863 - accuracy: 0.9858\n",
      "Epoch 32/100\n",
      "1400/1400 [==============================] - 41s 30ms/step - loss: 0.0908 - accuracy: 0.9850\n",
      "Epoch 33/100\n",
      "1400/1400 [==============================] - 43s 30ms/step - loss: 0.0903 - accuracy: 0.9849\n",
      "Epoch 34/100\n",
      "1400/1400 [==============================] - 43s 30ms/step - loss: 0.0864 - accuracy: 0.9852\n",
      "Epoch 35/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0902 - accuracy: 0.9851\n",
      "Epoch 36/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0862 - accuracy: 0.9853\n",
      "Epoch 37/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0882 - accuracy: 0.9855\n",
      "Epoch 38/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0909 - accuracy: 0.9851\n",
      "Epoch 39/100\n",
      "1400/1400 [==============================] - 43s 30ms/step - loss: 0.0874 - accuracy: 0.9850\n",
      "Epoch 40/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0924 - accuracy: 0.9848\n",
      "Epoch 41/100\n",
      "1400/1400 [==============================] - 41s 29ms/step - loss: 0.0813 - accuracy: 0.9862\n",
      "Epoch 42/100\n",
      "1400/1400 [==============================] - 41s 29ms/step - loss: 0.0949 - accuracy: 0.9849\n",
      "Epoch 43/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0878 - accuracy: 0.9852\n",
      "Epoch 44/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0810 - accuracy: 0.9860\n",
      "Epoch 45/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0869 - accuracy: 0.9859\n",
      "Epoch 46/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0859 - accuracy: 0.9857\n",
      "Epoch 47/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0902 - accuracy: 0.9853\n",
      "Epoch 48/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0923 - accuracy: 0.9848\n",
      "Epoch 49/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0828 - accuracy: 0.9863\n",
      "Epoch 50/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0858 - accuracy: 0.9859\n",
      "Epoch 51/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0815 - accuracy: 0.9859\n",
      "Epoch 52/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0910 - accuracy: 0.9852\n",
      "Epoch 53/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0816 - accuracy: 0.9862\n",
      "Epoch 54/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0909 - accuracy: 0.9856\n",
      "Epoch 55/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0880 - accuracy: 0.9861\n",
      "Epoch 56/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0947 - accuracy: 0.9849\n",
      "Epoch 57/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0938 - accuracy: 0.9855\n",
      "Epoch 58/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0822 - accuracy: 0.9866\n",
      "Epoch 59/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0895 - accuracy: 0.9856\n",
      "Epoch 60/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0899 - accuracy: 0.9858\n",
      "Epoch 61/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0885 - accuracy: 0.9859\n",
      "Epoch 62/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0984 - accuracy: 0.9848\n",
      "Epoch 63/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0798 - accuracy: 0.9870\n",
      "Epoch 64/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0913 - accuracy: 0.9858\n",
      "Epoch 65/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0928 - accuracy: 0.9855\n",
      "Epoch 66/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0915 - accuracy: 0.9860\n",
      "Epoch 67/100\n",
      "1400/1400 [==============================] - 43s 30ms/step - loss: 0.0880 - accuracy: 0.9869\n",
      "Epoch 68/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0854 - accuracy: 0.9861\n",
      "Epoch 69/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0933 - accuracy: 0.9854\n",
      "Epoch 70/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0916 - accuracy: 0.9861\n",
      "Epoch 71/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0853 - accuracy: 0.9865\n",
      "Epoch 72/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0899 - accuracy: 0.9857\n",
      "Epoch 73/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0898 - accuracy: 0.9858\n",
      "Epoch 74/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0876 - accuracy: 0.9858\n",
      "Epoch 75/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0854 - accuracy: 0.9866\n",
      "Epoch 76/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0869 - accuracy: 0.9861\n",
      "Epoch 77/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0944 - accuracy: 0.9860\n",
      "Epoch 78/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0930 - accuracy: 0.9858\n",
      "Epoch 79/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0891 - accuracy: 0.9861\n",
      "Epoch 80/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0878 - accuracy: 0.9860\n",
      "Epoch 81/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.1012 - accuracy: 0.9847\n",
      "Epoch 82/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0906 - accuracy: 0.9857\n",
      "Epoch 83/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0893 - accuracy: 0.9864\n",
      "Epoch 84/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0854 - accuracy: 0.9868\n",
      "Epoch 85/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0904 - accuracy: 0.9863\n",
      "Epoch 86/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0905 - accuracy: 0.9863\n",
      "Epoch 87/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0887 - accuracy: 0.9863\n",
      "Epoch 88/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0910 - accuracy: 0.9856\n",
      "Epoch 89/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0863 - accuracy: 0.9868\n",
      "Epoch 90/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0896 - accuracy: 0.9866\n",
      "Epoch 91/100\n",
      "1400/1400 [==============================] - 43s 30ms/step - loss: 0.0872 - accuracy: 0.9861\n",
      "Epoch 92/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0934 - accuracy: 0.9858\n",
      "Epoch 93/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0915 - accuracy: 0.9858\n",
      "Epoch 94/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0940 - accuracy: 0.9859\n",
      "Epoch 95/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0941 - accuracy: 0.9860\n",
      "Epoch 96/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0849 - accuracy: 0.9868\n",
      "Epoch 97/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0907 - accuracy: 0.9864\n",
      "Epoch 98/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0916 - accuracy: 0.9863\n",
      "Epoch 99/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0934 - accuracy: 0.9862\n",
      "Epoch 100/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0775 - accuracy: 0.9879\n",
      "622/622 - 2s - loss: 0.0499 - accuracy: 0.9913 - 2s/epoch - 3ms/step\n",
      "622/622 [==============================] - 2s 3ms/step\n",
      "Epoch 1/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.1195 - accuracy: 0.9830\n",
      "Epoch 2/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.1062 - accuracy: 0.9839\n",
      "Epoch 3/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.1045 - accuracy: 0.9841\n",
      "Epoch 4/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.1055 - accuracy: 0.9840\n",
      "Epoch 5/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0986 - accuracy: 0.9848\n",
      "Epoch 6/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0924 - accuracy: 0.9851\n",
      "Epoch 7/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.1014 - accuracy: 0.9843\n",
      "Epoch 8/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.1123 - accuracy: 0.9835\n",
      "Epoch 9/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0913 - accuracy: 0.9854\n",
      "Epoch 10/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.1016 - accuracy: 0.9847\n",
      "Epoch 11/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0953 - accuracy: 0.9854\n",
      "Epoch 12/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0931 - accuracy: 0.9852\n",
      "Epoch 13/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.1039 - accuracy: 0.9851\n",
      "Epoch 14/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.1020 - accuracy: 0.9853\n",
      "Epoch 15/100\n",
      "1400/1400 [==============================] - 43s 30ms/step - loss: 0.0906 - accuracy: 0.9856\n",
      "Epoch 16/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0974 - accuracy: 0.9848\n",
      "Epoch 17/100\n",
      "1400/1400 [==============================] - 43s 30ms/step - loss: 0.0973 - accuracy: 0.9848\n",
      "Epoch 18/100\n",
      "1400/1400 [==============================] - 43s 30ms/step - loss: 0.1030 - accuracy: 0.9845\n",
      "Epoch 19/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0921 - accuracy: 0.9860\n",
      "Epoch 20/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0931 - accuracy: 0.9860\n",
      "Epoch 21/100\n",
      "1400/1400 [==============================] - 43s 30ms/step - loss: 0.1025 - accuracy: 0.9848\n",
      "Epoch 22/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0965 - accuracy: 0.9851\n",
      "Epoch 23/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0925 - accuracy: 0.9853\n",
      "Epoch 24/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.1022 - accuracy: 0.9845\n",
      "Epoch 25/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.1001 - accuracy: 0.9852\n",
      "Epoch 26/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0895 - accuracy: 0.9861\n",
      "Epoch 27/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0914 - accuracy: 0.9863\n",
      "Epoch 28/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.1029 - accuracy: 0.9850\n",
      "Epoch 29/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.1049 - accuracy: 0.9844\n",
      "Epoch 30/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0960 - accuracy: 0.9858\n",
      "Epoch 31/100\n",
      "1400/1400 [==============================] - 43s 30ms/step - loss: 0.1009 - accuracy: 0.9856\n",
      "Epoch 32/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.1034 - accuracy: 0.9851\n",
      "Epoch 33/100\n",
      "1400/1400 [==============================] - 43s 30ms/step - loss: 0.0985 - accuracy: 0.9847\n",
      "Epoch 34/100\n",
      "1400/1400 [==============================] - 43s 30ms/step - loss: 0.1009 - accuracy: 0.9857\n",
      "Epoch 35/100\n",
      "1400/1400 [==============================] - 43s 30ms/step - loss: 0.1117 - accuracy: 0.9844\n",
      "Epoch 36/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0928 - accuracy: 0.9855\n",
      "Epoch 37/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.1009 - accuracy: 0.9854\n",
      "Epoch 38/100\n",
      "1400/1400 [==============================] - 43s 30ms/step - loss: 0.1038 - accuracy: 0.9855\n",
      "Epoch 39/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0991 - accuracy: 0.9848\n",
      "Epoch 40/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0988 - accuracy: 0.9858\n",
      "Epoch 41/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0944 - accuracy: 0.9858\n",
      "Epoch 42/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0959 - accuracy: 0.9857\n",
      "Epoch 43/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0924 - accuracy: 0.9857\n",
      "Epoch 44/100\n",
      "1400/1400 [==============================] - 43s 30ms/step - loss: 0.0954 - accuracy: 0.9856\n",
      "Epoch 45/100\n",
      "1400/1400 [==============================] - 43s 30ms/step - loss: 0.1070 - accuracy: 0.9855\n",
      "Epoch 46/100\n",
      "1400/1400 [==============================] - 43s 30ms/step - loss: 0.0984 - accuracy: 0.9851\n",
      "Epoch 47/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0963 - accuracy: 0.9858\n",
      "Epoch 48/100\n",
      "1400/1400 [==============================] - 43s 30ms/step - loss: 0.0868 - accuracy: 0.9872\n",
      "Epoch 49/100\n",
      "1400/1400 [==============================] - 43s 30ms/step - loss: 0.0927 - accuracy: 0.9857\n",
      "Epoch 50/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0941 - accuracy: 0.9860\n",
      "Epoch 51/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.1013 - accuracy: 0.9852\n",
      "Epoch 52/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.1151 - accuracy: 0.9842\n",
      "Epoch 53/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0984 - accuracy: 0.9854\n",
      "Epoch 54/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.1042 - accuracy: 0.9848\n",
      "Epoch 55/100\n",
      "1400/1400 [==============================] - 43s 30ms/step - loss: 0.0903 - accuracy: 0.9865\n",
      "Epoch 56/100\n",
      "1400/1400 [==============================] - 43s 30ms/step - loss: 0.1027 - accuracy: 0.9859\n",
      "Epoch 57/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0976 - accuracy: 0.9858\n",
      "Epoch 58/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.1124 - accuracy: 0.9846\n",
      "Epoch 59/100\n",
      "1400/1400 [==============================] - 43s 30ms/step - loss: 0.0973 - accuracy: 0.9858\n",
      "Epoch 60/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.0919 - accuracy: 0.9865\n",
      "Epoch 61/100\n",
      "1400/1400 [==============================] - 43s 30ms/step - loss: 0.0935 - accuracy: 0.9866\n",
      "Epoch 62/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0967 - accuracy: 0.9866\n",
      "Epoch 63/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1053 - accuracy: 0.9846\n",
      "Epoch 64/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0955 - accuracy: 0.9859\n",
      "Epoch 65/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0930 - accuracy: 0.9862\n",
      "Epoch 66/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0964 - accuracy: 0.9864\n",
      "Epoch 67/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1033 - accuracy: 0.9855\n",
      "Epoch 68/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1008 - accuracy: 0.9860\n",
      "Epoch 69/100\n",
      "1400/1400 [==============================] - 45s 32ms/step - loss: 0.0904 - accuracy: 0.9866\n",
      "Epoch 70/100\n",
      "1400/1400 [==============================] - 45s 32ms/step - loss: 0.1121 - accuracy: 0.9846\n",
      "Epoch 71/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1057 - accuracy: 0.9852\n",
      "Epoch 72/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1041 - accuracy: 0.9857\n",
      "Epoch 73/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0946 - accuracy: 0.9869\n",
      "Epoch 74/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0997 - accuracy: 0.9857\n",
      "Epoch 75/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1041 - accuracy: 0.9854\n",
      "Epoch 76/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1056 - accuracy: 0.9858\n",
      "Epoch 77/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0939 - accuracy: 0.9868\n",
      "Epoch 78/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1104 - accuracy: 0.9848\n",
      "Epoch 79/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1069 - accuracy: 0.9848\n",
      "Epoch 80/100\n",
      "1400/1400 [==============================] - 42s 30ms/step - loss: 0.1091 - accuracy: 0.9849\n",
      "Epoch 81/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0977 - accuracy: 0.9859\n",
      "Epoch 82/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1042 - accuracy: 0.9849\n",
      "Epoch 83/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1014 - accuracy: 0.9861\n",
      "Epoch 84/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1006 - accuracy: 0.9856\n",
      "Epoch 85/100\n",
      "1400/1400 [==============================] - 43s 30ms/step - loss: 0.1067 - accuracy: 0.9847\n",
      "Epoch 86/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1119 - accuracy: 0.9854\n",
      "Epoch 87/100\n",
      "1400/1400 [==============================] - 43s 30ms/step - loss: 0.0971 - accuracy: 0.9863\n",
      "Epoch 88/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1138 - accuracy: 0.9847\n",
      "Epoch 89/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1036 - accuracy: 0.9860\n",
      "Epoch 90/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1121 - accuracy: 0.9850\n",
      "Epoch 91/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1050 - accuracy: 0.9854\n",
      "Epoch 92/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.0935 - accuracy: 0.9863\n",
      "Epoch 93/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1039 - accuracy: 0.9851\n",
      "Epoch 94/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1083 - accuracy: 0.9859\n",
      "Epoch 95/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.0991 - accuracy: 0.9862\n",
      "Epoch 96/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1080 - accuracy: 0.9852\n",
      "Epoch 97/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1017 - accuracy: 0.9856\n",
      "Epoch 98/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1017 - accuracy: 0.9859\n",
      "Epoch 99/100\n",
      "1400/1400 [==============================] - 44s 32ms/step - loss: 0.1075 - accuracy: 0.9855\n",
      "Epoch 100/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1033 - accuracy: 0.9856\n",
      "622/622 - 2s - loss: 0.0646 - accuracy: 0.9882 - 2s/epoch - 3ms/step\n",
      "622/622 [==============================] - 2s 4ms/step\n",
      "Epoch 1/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1228 - accuracy: 0.9835\n",
      "Epoch 2/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1236 - accuracy: 0.9831\n",
      "Epoch 3/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1207 - accuracy: 0.9836\n",
      "Epoch 4/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1125 - accuracy: 0.9848\n",
      "Epoch 5/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1173 - accuracy: 0.9835\n",
      "Epoch 6/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1138 - accuracy: 0.9843\n",
      "Epoch 7/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1129 - accuracy: 0.9835\n",
      "Epoch 8/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1215 - accuracy: 0.9831\n",
      "Epoch 9/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1120 - accuracy: 0.9840\n",
      "Epoch 10/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1104 - accuracy: 0.9847\n",
      "Epoch 11/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1144 - accuracy: 0.9841\n",
      "Epoch 12/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1082 - accuracy: 0.9845\n",
      "Epoch 13/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1094 - accuracy: 0.9842\n",
      "Epoch 14/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1127 - accuracy: 0.9842\n",
      "Epoch 15/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1086 - accuracy: 0.9851\n",
      "Epoch 16/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1058 - accuracy: 0.9854\n",
      "Epoch 17/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1106 - accuracy: 0.9847\n",
      "Epoch 18/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1105 - accuracy: 0.9845\n",
      "Epoch 19/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1058 - accuracy: 0.9846\n",
      "Epoch 20/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1109 - accuracy: 0.9845\n",
      "Epoch 21/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1085 - accuracy: 0.9846\n",
      "Epoch 22/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1142 - accuracy: 0.9841\n",
      "Epoch 23/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1113 - accuracy: 0.9841\n",
      "Epoch 24/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1101 - accuracy: 0.9853\n",
      "Epoch 25/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1178 - accuracy: 0.9841\n",
      "Epoch 26/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1236 - accuracy: 0.9833\n",
      "Epoch 27/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1102 - accuracy: 0.9847\n",
      "Epoch 28/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1156 - accuracy: 0.9848\n",
      "Epoch 29/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1091 - accuracy: 0.9849\n",
      "Epoch 30/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1061 - accuracy: 0.9850\n",
      "Epoch 31/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1112 - accuracy: 0.9847\n",
      "Epoch 32/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1112 - accuracy: 0.9849\n",
      "Epoch 33/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1135 - accuracy: 0.9844\n",
      "Epoch 34/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1089 - accuracy: 0.9849\n",
      "Epoch 35/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1109 - accuracy: 0.9850\n",
      "Epoch 36/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1155 - accuracy: 0.9840\n",
      "Epoch 37/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1051 - accuracy: 0.9850\n",
      "Epoch 38/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1259 - accuracy: 0.9839\n",
      "Epoch 39/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1072 - accuracy: 0.9854\n",
      "Epoch 40/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1084 - accuracy: 0.9853\n",
      "Epoch 41/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1082 - accuracy: 0.9855\n",
      "Epoch 42/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1177 - accuracy: 0.9842\n",
      "Epoch 43/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1149 - accuracy: 0.9841\n",
      "Epoch 44/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1076 - accuracy: 0.9855\n",
      "Epoch 45/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1101 - accuracy: 0.9844\n",
      "Epoch 46/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1132 - accuracy: 0.9846\n",
      "Epoch 47/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1055 - accuracy: 0.9853\n",
      "Epoch 48/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1148 - accuracy: 0.9845\n",
      "Epoch 49/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1281 - accuracy: 0.9835\n",
      "Epoch 50/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1033 - accuracy: 0.9856\n",
      "Epoch 51/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1143 - accuracy: 0.9842\n",
      "Epoch 52/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1131 - accuracy: 0.9845\n",
      "Epoch 53/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1135 - accuracy: 0.9847\n",
      "Epoch 54/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1154 - accuracy: 0.9846\n",
      "Epoch 55/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1167 - accuracy: 0.9853\n",
      "Epoch 56/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1145 - accuracy: 0.9847\n",
      "Epoch 57/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1048 - accuracy: 0.9851\n",
      "Epoch 58/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1229 - accuracy: 0.9842\n",
      "Epoch 59/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1304 - accuracy: 0.9837\n",
      "Epoch 60/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1055 - accuracy: 0.9860\n",
      "Epoch 61/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1080 - accuracy: 0.9848\n",
      "Epoch 62/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1206 - accuracy: 0.9847\n",
      "Epoch 63/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1182 - accuracy: 0.9850\n",
      "Epoch 64/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1157 - accuracy: 0.9856\n",
      "Epoch 65/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1214 - accuracy: 0.9842\n",
      "Epoch 66/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1100 - accuracy: 0.9853\n",
      "Epoch 67/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1289 - accuracy: 0.9837\n",
      "Epoch 68/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1125 - accuracy: 0.9849\n",
      "Epoch 69/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1050 - accuracy: 0.9859\n",
      "Epoch 70/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1160 - accuracy: 0.9841\n",
      "Epoch 71/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1198 - accuracy: 0.9848\n",
      "Epoch 72/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1085 - accuracy: 0.9854\n",
      "Epoch 73/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1071 - accuracy: 0.9856\n",
      "Epoch 74/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1161 - accuracy: 0.9841\n",
      "Epoch 75/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1243 - accuracy: 0.9840\n",
      "Epoch 76/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1162 - accuracy: 0.9846\n",
      "Epoch 77/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1164 - accuracy: 0.9845\n",
      "Epoch 78/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1192 - accuracy: 0.9849\n",
      "Epoch 79/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1106 - accuracy: 0.9852\n",
      "Epoch 80/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1214 - accuracy: 0.9846\n",
      "Epoch 81/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1202 - accuracy: 0.9851\n",
      "Epoch 82/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1205 - accuracy: 0.9835\n",
      "Epoch 83/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1196 - accuracy: 0.9844\n",
      "Epoch 84/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1232 - accuracy: 0.9839\n",
      "Epoch 85/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1226 - accuracy: 0.9841\n",
      "Epoch 86/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1185 - accuracy: 0.9845\n",
      "Epoch 87/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1168 - accuracy: 0.9844\n",
      "Epoch 88/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1307 - accuracy: 0.9837\n",
      "Epoch 89/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1232 - accuracy: 0.9849\n",
      "Epoch 90/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1231 - accuracy: 0.9839\n",
      "Epoch 91/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1166 - accuracy: 0.9845\n",
      "Epoch 92/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1265 - accuracy: 0.9847\n",
      "Epoch 93/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1331 - accuracy: 0.9837\n",
      "Epoch 94/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1162 - accuracy: 0.9849\n",
      "Epoch 95/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1291 - accuracy: 0.9835\n",
      "Epoch 96/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1059 - accuracy: 0.9856\n",
      "Epoch 97/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1259 - accuracy: 0.9831\n",
      "Epoch 98/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1259 - accuracy: 0.9838\n",
      "Epoch 99/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1297 - accuracy: 0.9836\n",
      "Epoch 100/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1186 - accuracy: 0.9840\n",
      "622/622 - 2s - loss: 0.0482 - accuracy: 0.9902 - 2s/epoch - 4ms/step\n",
      "622/622 [==============================] - 2s 4ms/step\n",
      "Epoch 1/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1542 - accuracy: 0.9806\n",
      "Epoch 2/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1356 - accuracy: 0.9821\n",
      "Epoch 3/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1282 - accuracy: 0.9834\n",
      "Epoch 4/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1370 - accuracy: 0.9829\n",
      "Epoch 5/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1416 - accuracy: 0.9831\n",
      "Epoch 6/100\n",
      "1400/1400 [==============================] - 44s 32ms/step - loss: 0.1260 - accuracy: 0.9836\n",
      "Epoch 7/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1301 - accuracy: 0.9831\n",
      "Epoch 8/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1461 - accuracy: 0.9819\n",
      "Epoch 9/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1214 - accuracy: 0.9833\n",
      "Epoch 10/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1418 - accuracy: 0.9813\n",
      "Epoch 11/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1236 - accuracy: 0.9835\n",
      "Epoch 12/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1391 - accuracy: 0.9824\n",
      "Epoch 13/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1330 - accuracy: 0.9830\n",
      "Epoch 14/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1422 - accuracy: 0.9818\n",
      "Epoch 15/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1314 - accuracy: 0.9827\n",
      "Epoch 16/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1329 - accuracy: 0.9826\n",
      "Epoch 17/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1408 - accuracy: 0.9815\n",
      "Epoch 18/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1312 - accuracy: 0.9833\n",
      "Epoch 19/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1278 - accuracy: 0.9837\n",
      "Epoch 20/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1302 - accuracy: 0.9834\n",
      "Epoch 21/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1314 - accuracy: 0.9830\n",
      "Epoch 22/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1394 - accuracy: 0.9824\n",
      "Epoch 23/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1323 - accuracy: 0.9823\n",
      "Epoch 24/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1310 - accuracy: 0.9826\n",
      "Epoch 25/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1464 - accuracy: 0.9814\n",
      "Epoch 26/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1432 - accuracy: 0.9820\n",
      "Epoch 27/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1332 - accuracy: 0.9837\n",
      "Epoch 28/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1298 - accuracy: 0.9837\n",
      "Epoch 29/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1413 - accuracy: 0.9825\n",
      "Epoch 30/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1437 - accuracy: 0.9823\n",
      "Epoch 31/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1280 - accuracy: 0.9834\n",
      "Epoch 32/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1315 - accuracy: 0.9832\n",
      "Epoch 33/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1422 - accuracy: 0.9815\n",
      "Epoch 34/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1383 - accuracy: 0.9818\n",
      "Epoch 35/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1345 - accuracy: 0.9823\n",
      "Epoch 36/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1433 - accuracy: 0.9825\n",
      "Epoch 37/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1437 - accuracy: 0.9824\n",
      "Epoch 38/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1364 - accuracy: 0.9833\n",
      "Epoch 39/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1409 - accuracy: 0.9830\n",
      "Epoch 40/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1412 - accuracy: 0.9821\n",
      "Epoch 41/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1358 - accuracy: 0.9822\n",
      "Epoch 42/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1510 - accuracy: 0.9817\n",
      "Epoch 43/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1430 - accuracy: 0.9816\n",
      "Epoch 44/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1282 - accuracy: 0.9829\n",
      "Epoch 45/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1462 - accuracy: 0.9812\n",
      "Epoch 46/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1295 - accuracy: 0.9832\n",
      "Epoch 47/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1409 - accuracy: 0.9825\n",
      "Epoch 48/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1337 - accuracy: 0.9823\n",
      "Epoch 49/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1399 - accuracy: 0.9822\n",
      "Epoch 50/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1410 - accuracy: 0.9827\n",
      "Epoch 51/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1123 - accuracy: 0.9847\n",
      "Epoch 52/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1364 - accuracy: 0.9821\n",
      "Epoch 53/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1508 - accuracy: 0.9821\n",
      "Epoch 54/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1198 - accuracy: 0.9835\n",
      "Epoch 55/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1279 - accuracy: 0.9831\n",
      "Epoch 56/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1498 - accuracy: 0.9820\n",
      "Epoch 57/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1495 - accuracy: 0.9817\n",
      "Epoch 58/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1397 - accuracy: 0.9817\n",
      "Epoch 59/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1408 - accuracy: 0.9820\n",
      "Epoch 60/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1336 - accuracy: 0.9828\n",
      "Epoch 61/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1553 - accuracy: 0.9808\n",
      "Epoch 62/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1388 - accuracy: 0.9819\n",
      "Epoch 63/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1366 - accuracy: 0.9821\n",
      "Epoch 64/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1411 - accuracy: 0.9812\n",
      "Epoch 65/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1460 - accuracy: 0.9816\n",
      "Epoch 66/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1307 - accuracy: 0.9832\n",
      "Epoch 67/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1552 - accuracy: 0.9812\n",
      "Epoch 68/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1493 - accuracy: 0.9809\n",
      "Epoch 69/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1539 - accuracy: 0.9813\n",
      "Epoch 70/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1429 - accuracy: 0.9814\n",
      "Epoch 71/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1474 - accuracy: 0.9813\n",
      "Epoch 72/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1540 - accuracy: 0.9806\n",
      "Epoch 73/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1473 - accuracy: 0.9813\n",
      "Epoch 74/100\n",
      "1400/1400 [==============================] - 43s 30ms/step - loss: 0.1541 - accuracy: 0.9814\n",
      "Epoch 75/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1576 - accuracy: 0.9799\n",
      "Epoch 76/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1416 - accuracy: 0.9809\n",
      "Epoch 77/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1491 - accuracy: 0.9810\n",
      "Epoch 78/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1512 - accuracy: 0.9806\n",
      "Epoch 79/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1502 - accuracy: 0.9821\n",
      "Epoch 80/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1563 - accuracy: 0.9809\n",
      "Epoch 81/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1548 - accuracy: 0.9800\n",
      "Epoch 82/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1560 - accuracy: 0.9816\n",
      "Epoch 83/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1542 - accuracy: 0.9804\n",
      "Epoch 84/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1397 - accuracy: 0.9808\n",
      "Epoch 85/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1480 - accuracy: 0.9819\n",
      "Epoch 86/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1381 - accuracy: 0.9826\n",
      "Epoch 87/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1527 - accuracy: 0.9812\n",
      "Epoch 88/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1455 - accuracy: 0.9809\n",
      "Epoch 89/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1579 - accuracy: 0.9806\n",
      "Epoch 90/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1471 - accuracy: 0.9815\n",
      "Epoch 91/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1470 - accuracy: 0.9806\n",
      "Epoch 92/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1519 - accuracy: 0.9813\n",
      "Epoch 93/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1515 - accuracy: 0.9810\n",
      "Epoch 94/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1507 - accuracy: 0.9806\n",
      "Epoch 95/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1435 - accuracy: 0.9806\n",
      "Epoch 96/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1629 - accuracy: 0.9794\n",
      "Epoch 97/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1662 - accuracy: 0.9799\n",
      "Epoch 98/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1466 - accuracy: 0.9807\n",
      "Epoch 99/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1596 - accuracy: 0.9803\n",
      "Epoch 100/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1548 - accuracy: 0.9801\n",
      "622/622 - 2s - loss: 0.0969 - accuracy: 0.9815 - 2s/epoch - 4ms/step\n",
      "622/622 [==============================] - 2s 4ms/step\n",
      "Epoch 1/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1911 - accuracy: 0.9763\n",
      "Epoch 2/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1605 - accuracy: 0.9788\n",
      "Epoch 3/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1633 - accuracy: 0.9782\n",
      "Epoch 4/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1798 - accuracy: 0.9776\n",
      "Epoch 5/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1728 - accuracy: 0.9782\n",
      "Epoch 6/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1801 - accuracy: 0.9770\n",
      "Epoch 7/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1669 - accuracy: 0.9784\n",
      "Epoch 8/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1601 - accuracy: 0.9790\n",
      "Epoch 9/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1655 - accuracy: 0.9786\n",
      "Epoch 10/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1709 - accuracy: 0.9786\n",
      "Epoch 11/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1543 - accuracy: 0.9787\n",
      "Epoch 12/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1739 - accuracy: 0.9771\n",
      "Epoch 13/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1831 - accuracy: 0.9761\n",
      "Epoch 14/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1657 - accuracy: 0.9781\n",
      "Epoch 15/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1641 - accuracy: 0.9788\n",
      "Epoch 16/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1655 - accuracy: 0.9782\n",
      "Epoch 17/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1723 - accuracy: 0.9779\n",
      "Epoch 18/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1821 - accuracy: 0.9773\n",
      "Epoch 19/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1691 - accuracy: 0.9787\n",
      "Epoch 20/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1615 - accuracy: 0.9788\n",
      "Epoch 21/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1724 - accuracy: 0.9768\n",
      "Epoch 22/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1702 - accuracy: 0.9799\n",
      "Epoch 23/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1816 - accuracy: 0.9763\n",
      "Epoch 24/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1728 - accuracy: 0.9782\n",
      "Epoch 25/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1802 - accuracy: 0.9775\n",
      "Epoch 26/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1638 - accuracy: 0.9795\n",
      "Epoch 27/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1837 - accuracy: 0.9767\n",
      "Epoch 28/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1716 - accuracy: 0.9789\n",
      "Epoch 29/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1941 - accuracy: 0.9752\n",
      "Epoch 30/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1852 - accuracy: 0.9765\n",
      "Epoch 31/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1776 - accuracy: 0.9773\n",
      "Epoch 32/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1733 - accuracy: 0.9766\n",
      "Epoch 33/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1499 - accuracy: 0.9791\n",
      "Epoch 34/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1906 - accuracy: 0.9748\n",
      "Epoch 35/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1688 - accuracy: 0.9778\n",
      "Epoch 36/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1732 - accuracy: 0.9777\n",
      "Epoch 37/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1825 - accuracy: 0.9751\n",
      "Epoch 38/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1705 - accuracy: 0.9787\n",
      "Epoch 39/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2053 - accuracy: 0.9739\n",
      "Epoch 40/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1689 - accuracy: 0.9774\n",
      "Epoch 41/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1816 - accuracy: 0.9742\n",
      "Epoch 42/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1808 - accuracy: 0.9758\n",
      "Epoch 43/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1856 - accuracy: 0.9762\n",
      "Epoch 44/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2043 - accuracy: 0.9733\n",
      "Epoch 45/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1975 - accuracy: 0.9739\n",
      "Epoch 46/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1703 - accuracy: 0.9769\n",
      "Epoch 47/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1897 - accuracy: 0.9742\n",
      "Epoch 48/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1731 - accuracy: 0.9767\n",
      "Epoch 49/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1893 - accuracy: 0.9751\n",
      "Epoch 50/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2032 - accuracy: 0.9739\n",
      "Epoch 51/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1784 - accuracy: 0.9764\n",
      "Epoch 52/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1903 - accuracy: 0.9755\n",
      "Epoch 53/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1863 - accuracy: 0.9756\n",
      "Epoch 54/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1972 - accuracy: 0.9746\n",
      "Epoch 55/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1837 - accuracy: 0.9755\n",
      "Epoch 56/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.2006 - accuracy: 0.9754\n",
      "Epoch 57/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1785 - accuracy: 0.9764\n",
      "Epoch 58/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1852 - accuracy: 0.9764\n",
      "Epoch 59/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1904 - accuracy: 0.9747\n",
      "Epoch 60/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2025 - accuracy: 0.9741\n",
      "Epoch 61/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1959 - accuracy: 0.9748\n",
      "Epoch 62/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1778 - accuracy: 0.9752\n",
      "Epoch 63/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.2038 - accuracy: 0.9728\n",
      "Epoch 64/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2036 - accuracy: 0.9728\n",
      "Epoch 65/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1943 - accuracy: 0.9748\n",
      "Epoch 66/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2037 - accuracy: 0.9739\n",
      "Epoch 67/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1949 - accuracy: 0.9745\n",
      "Epoch 68/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2074 - accuracy: 0.9733\n",
      "Epoch 69/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.2121 - accuracy: 0.9737\n",
      "Epoch 70/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2089 - accuracy: 0.9731\n",
      "Epoch 71/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1882 - accuracy: 0.9736\n",
      "Epoch 72/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1883 - accuracy: 0.9751\n",
      "Epoch 73/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1901 - accuracy: 0.9755\n",
      "Epoch 74/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2078 - accuracy: 0.9738\n",
      "Epoch 75/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1989 - accuracy: 0.9749\n",
      "Epoch 76/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2088 - accuracy: 0.9740\n",
      "Epoch 77/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2067 - accuracy: 0.9723\n",
      "Epoch 78/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2004 - accuracy: 0.9730\n",
      "Epoch 79/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.1944 - accuracy: 0.9739\n",
      "Epoch 80/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2205 - accuracy: 0.9708\n",
      "Epoch 81/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.2108 - accuracy: 0.9722\n",
      "Epoch 82/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.2038 - accuracy: 0.9725\n",
      "Epoch 83/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2018 - accuracy: 0.9728\n",
      "Epoch 84/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2064 - accuracy: 0.9732\n",
      "Epoch 85/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2097 - accuracy: 0.9731\n",
      "Epoch 86/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.1989 - accuracy: 0.9730\n",
      "Epoch 87/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2071 - accuracy: 0.9728\n",
      "Epoch 88/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2036 - accuracy: 0.9724\n",
      "Epoch 89/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2000 - accuracy: 0.9721\n",
      "Epoch 90/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2033 - accuracy: 0.9726\n",
      "Epoch 91/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2089 - accuracy: 0.9721\n",
      "Epoch 92/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2517 - accuracy: 0.9677\n",
      "Epoch 93/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2043 - accuracy: 0.9731\n",
      "Epoch 94/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2188 - accuracy: 0.9712\n",
      "Epoch 95/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.2230 - accuracy: 0.9713\n",
      "Epoch 96/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2069 - accuracy: 0.9725\n",
      "Epoch 97/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.2372 - accuracy: 0.9709\n",
      "Epoch 98/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2133 - accuracy: 0.9702\n",
      "Epoch 99/100\n",
      "1400/1400 [==============================] - 44s 31ms/step - loss: 0.2236 - accuracy: 0.9701\n",
      "Epoch 100/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2201 - accuracy: 0.9720\n",
      "622/622 - 2s - loss: 0.1382 - accuracy: 0.9714 - 2s/epoch - 4ms/step\n",
      "622/622 [==============================] - 2s 4ms/step\n",
      "Epoch 1/100\n",
      "1400/1400 [==============================] - 43s 30ms/step - loss: 0.2439 - accuracy: 0.9690\n",
      "Epoch 2/100\n",
      "1400/1400 [==============================] - 43s 30ms/step - loss: 0.2332 - accuracy: 0.9686\n",
      "Epoch 3/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2138 - accuracy: 0.9714\n",
      "Epoch 4/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2453 - accuracy: 0.9687\n",
      "Epoch 5/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2207 - accuracy: 0.9710\n",
      "Epoch 6/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2348 - accuracy: 0.9680\n",
      "Epoch 7/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2359 - accuracy: 0.9669\n",
      "Epoch 8/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2421 - accuracy: 0.9688\n",
      "Epoch 9/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2236 - accuracy: 0.9696\n",
      "Epoch 10/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2499 - accuracy: 0.9673\n",
      "Epoch 11/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2372 - accuracy: 0.9672\n",
      "Epoch 12/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2202 - accuracy: 0.9701\n",
      "Epoch 13/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2211 - accuracy: 0.9701\n",
      "Epoch 14/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2309 - accuracy: 0.9702\n",
      "Epoch 15/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2591 - accuracy: 0.9643\n",
      "Epoch 16/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2365 - accuracy: 0.9670\n",
      "Epoch 17/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2535 - accuracy: 0.9654\n",
      "Epoch 18/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2528 - accuracy: 0.9667\n",
      "Epoch 19/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2754 - accuracy: 0.9636\n",
      "Epoch 20/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2341 - accuracy: 0.9673\n",
      "Epoch 21/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2521 - accuracy: 0.9657\n",
      "Epoch 22/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2528 - accuracy: 0.9652\n",
      "Epoch 23/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2452 - accuracy: 0.9676\n",
      "Epoch 24/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2895 - accuracy: 0.9644\n",
      "Epoch 25/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2566 - accuracy: 0.9642\n",
      "Epoch 26/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2517 - accuracy: 0.9636\n",
      "Epoch 27/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2595 - accuracy: 0.9643\n",
      "Epoch 28/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2268 - accuracy: 0.9668\n",
      "Epoch 29/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2639 - accuracy: 0.9633\n",
      "Epoch 30/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2499 - accuracy: 0.9640\n",
      "Epoch 31/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2381 - accuracy: 0.9651\n",
      "Epoch 32/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2648 - accuracy: 0.9634\n",
      "Epoch 33/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2773 - accuracy: 0.9601\n",
      "Epoch 34/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2521 - accuracy: 0.9646\n",
      "Epoch 35/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2623 - accuracy: 0.9632\n",
      "Epoch 36/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2619 - accuracy: 0.9636\n",
      "Epoch 37/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2787 - accuracy: 0.9617\n",
      "Epoch 38/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2542 - accuracy: 0.9643\n",
      "Epoch 39/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2769 - accuracy: 0.9627\n",
      "Epoch 40/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2529 - accuracy: 0.9637\n",
      "Epoch 41/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2948 - accuracy: 0.9623\n",
      "Epoch 42/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2600 - accuracy: 0.9626\n",
      "Epoch 43/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2661 - accuracy: 0.9628\n",
      "Epoch 44/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2631 - accuracy: 0.9617\n",
      "Epoch 45/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2598 - accuracy: 0.9626\n",
      "Epoch 46/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2863 - accuracy: 0.9589\n",
      "Epoch 47/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2632 - accuracy: 0.9610\n",
      "Epoch 48/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2957 - accuracy: 0.9618\n",
      "Epoch 49/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2957 - accuracy: 0.9597\n",
      "Epoch 50/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2833 - accuracy: 0.9624\n",
      "Epoch 51/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2926 - accuracy: 0.9583\n",
      "Epoch 52/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2637 - accuracy: 0.9623\n",
      "Epoch 53/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2877 - accuracy: 0.9605\n",
      "Epoch 54/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2785 - accuracy: 0.9630\n",
      "Epoch 55/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2819 - accuracy: 0.9610\n",
      "Epoch 56/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2980 - accuracy: 0.9614\n",
      "Epoch 57/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2667 - accuracy: 0.9610\n",
      "Epoch 58/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2555 - accuracy: 0.9627\n",
      "Epoch 59/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2758 - accuracy: 0.9595\n",
      "Epoch 60/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2990 - accuracy: 0.9592\n",
      "Epoch 61/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.3192 - accuracy: 0.9589\n",
      "Epoch 62/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2634 - accuracy: 0.9628\n",
      "Epoch 63/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2765 - accuracy: 0.9610\n",
      "Epoch 64/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2874 - accuracy: 0.9598\n",
      "Epoch 65/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.3144 - accuracy: 0.9570\n",
      "Epoch 66/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2742 - accuracy: 0.9592\n",
      "Epoch 67/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.3246 - accuracy: 0.9552\n",
      "Epoch 68/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2829 - accuracy: 0.9589\n",
      "Epoch 69/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.3137 - accuracy: 0.9583\n",
      "Epoch 70/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2813 - accuracy: 0.9571\n",
      "Epoch 71/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.3379 - accuracy: 0.9535\n",
      "Epoch 72/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.3204 - accuracy: 0.9560\n",
      "Epoch 73/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.2752 - accuracy: 0.9586\n",
      "Epoch 74/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.3168 - accuracy: 0.9585\n",
      "Epoch 75/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.3083 - accuracy: 0.9569\n",
      "Epoch 76/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.3119 - accuracy: 0.9528\n",
      "Epoch 77/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.3252 - accuracy: 0.9534\n",
      "Epoch 78/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.3169 - accuracy: 0.9563\n",
      "Epoch 79/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.3028 - accuracy: 0.9554\n",
      "Epoch 80/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.3315 - accuracy: 0.9534\n",
      "Epoch 81/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.3042 - accuracy: 0.9545\n",
      "Epoch 82/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.3261 - accuracy: 0.9545\n",
      "Epoch 83/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.3695 - accuracy: 0.9500\n",
      "Epoch 84/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.3153 - accuracy: 0.9537\n",
      "Epoch 85/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.3197 - accuracy: 0.9548\n",
      "Epoch 86/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.3208 - accuracy: 0.9563\n",
      "Epoch 87/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.3010 - accuracy: 0.9569\n",
      "Epoch 88/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.3124 - accuracy: 0.9554\n",
      "Epoch 89/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.3164 - accuracy: 0.9552\n",
      "Epoch 90/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.3890 - accuracy: 0.9441\n",
      "Epoch 91/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.3287 - accuracy: 0.9509\n",
      "Epoch 92/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.3320 - accuracy: 0.9544\n",
      "Epoch 93/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.3266 - accuracy: 0.9540\n",
      "Epoch 94/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.3082 - accuracy: 0.9535\n",
      "Epoch 95/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.3383 - accuracy: 0.9523\n",
      "Epoch 96/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.3394 - accuracy: 0.9488\n",
      "Epoch 97/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.3641 - accuracy: 0.9472\n",
      "Epoch 98/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.3812 - accuracy: 0.9426\n",
      "Epoch 99/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.3615 - accuracy: 0.9490\n",
      "Epoch 100/100\n",
      "1400/1400 [==============================] - 43s 31ms/step - loss: 0.3196 - accuracy: 0.9540\n",
      "622/622 - 2s - loss: 0.1799 - accuracy: 0.9580 - 2s/epoch - 3ms/step\n",
      "622/622 [==============================] - 2s 4ms/step\n"
     ]
    }
   ],
   "source": [
    "fold_counter = 0\n",
    "\n",
    "# 10-fold Cross Validation\n",
    "for train_index, val_index in skf.split(users_bpf_EKMs_x, numerical_y_labels):\n",
    "    # temp\n",
    "    if fold_counter == 0:\n",
    "        fold_counter += 1\n",
    "        continue\n",
    "    # temp\n",
    "\n",
    "    # Split data\n",
    "    X_train, X_val = users_bpf_EKMs_x[train_index], users_bpf_EKMs_x[val_index]\n",
    "    y_train, y_val = numerical_y_labels[train_index], numerical_y_labels[val_index]\n",
    "    \n",
    "    # Train your model (assuming you have a model object `model`)\n",
    "    model.fit(X_train, y_train, epochs=100, batch_size=128)\n",
    "    \n",
    "    # Validate the model\n",
    "    # Accuracy, loss\n",
    "    val_loss, val_accuracy = model.evaluate(X_val, y_val, verbose=2)\n",
    "    fold_accuracies.append(val_accuracy)\n",
    "\n",
    "    # AUPR\n",
    "    y_pred_probs = model.predict(X_val)\n",
    "    y_test_onehot = to_categorical(y_val, num_classes=199)\n",
    "    aupr = calculate_aupr(y_test_onehot, y_pred_probs)\n",
    "\n",
    "    # AUC-ROC\n",
    "    auc_roc = calculate_auc_roc(y_val, y_pred_probs)\n",
    "    \n",
    "    # Saving the evaluation results\n",
    "    folds_evaluation[fold_counter][\"accuracy\"] =  val_accuracy\n",
    "    folds_evaluation[fold_counter][\"loss\"] =  val_loss\n",
    "    folds_evaluation[fold_counter][\"AUPR\"] =  aupr\n",
    "    folds_evaluation[fold_counter][\"AUC_ROC\"] = auc_roc\n",
    "    \n",
    "    fold_counter += 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{0: {'accuracy': 0.9573366641998291,\n",
       "  'loss': 0.257964164018631,\n",
       "  'AUPR': 0.9888582061653239,\n",
       "  'AUC_ROC': 0.9997986104766255},\n",
       " 1: {'accuracy': 0.9801005125045776,\n",
       "  'loss': 0.10186415910720825,\n",
       "  'AUPR': 0.9971921937922992,\n",
       "  'AUC_ROC': 0.9999618826455512},\n",
       " 2: {'accuracy': 0.9801507592201233,\n",
       "  'loss': 0.09285906702280045,\n",
       "  'AUPR': 0.996777511389659,\n",
       "  'AUC_ROC': 0.999956494594183},\n",
       " 3: {'accuracy': 0.9867336750030518,\n",
       "  'loss': 0.06404966115951538,\n",
       "  'AUPR': 0.9980269909859882,\n",
       "  'AUC_ROC': 0.9999790188315313},\n",
       " 4: {'accuracy': 0.9912562966346741,\n",
       "  'loss': 0.04987214878201485,\n",
       "  'AUPR': 0.9986819780571647,\n",
       "  'AUC_ROC': 0.9999845020557334},\n",
       " 5: {'accuracy': 0.9881909489631653,\n",
       "  'loss': 0.06455987691879272,\n",
       "  'AUPR': 0.9980243259941595,\n",
       "  'AUC_ROC': 0.9999534960154306},\n",
       " 6: {'accuracy': 0.9901507496833801,\n",
       "  'loss': 0.04817540571093559,\n",
       "  'AUPR': 0.9987955071655022,\n",
       "  'AUC_ROC': 0.9999807065631185},\n",
       " 7: {'accuracy': 0.9814572930335999,\n",
       "  'loss': 0.0969230905175209,\n",
       "  'AUPR': 0.9960203056440236,\n",
       "  'AUC_ROC': 0.9998980407085933},\n",
       " 8: {'accuracy': 0.9714070558547974,\n",
       "  'loss': 0.13819265365600586,\n",
       "  'AUPR': 0.9926490979138781,\n",
       "  'AUC_ROC': 0.9997835033754632},\n",
       " 9: {'accuracy': 0.9579899311065674,\n",
       "  'loss': 0.1799347996711731,\n",
       "  'AUPR': 0.9865106296019023,\n",
       "  'AUC_ROC': 0.9994989010710117}}"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "folds_evaluation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "10-Fold Cross-Validation Accuracy: 0.9808263580004374\n"
     ]
    }
   ],
   "source": [
    "# Average accuracy across folds\n",
    "average_accuracy = np.mean(fold_accuracies)\n",
    "print(\"10-Fold Cross-Validation Accuracy:\", average_accuracy)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [],
   "source": [
    "folds_evaluation[\"average_accuracy\"] = average_accuracy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [],
   "source": [
    "import json\n",
    "\n",
    "# Save to a text file\n",
    "with open(\"../5bpf_6seconds_inBoundary_auth_1000EKMs.txt\", \"w\") as file:\n",
    "    json.dump(folds_evaluation, file, indent=4) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.9579899311065674"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.min(fold_accuracies)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.9912562966346741"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.max(fold_accuracies)"
   ]
  }
 ],
 "metadata": {
  "colab": {
   "provenance": []
  },
  "kernelspec": {
   "display_name": "Python 3",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
